Nemokake elemen dening pamilih CSS minangka cara sing disenengi amarga luwih cepet lan luwih bisa diwaca tinimbang XPath.
Tutorial iki menehi conto cara nemokake elemen web ing Selenium nggunakake pamilih CSS.
Coba bayangake kita duwe tag kanthi atribut ing ngisor iki [id, kelas, jeneng, nilai]
Cara umum kanggo nemokake elemen miturut atribut yaiku:
css = element_name[='']
Tuladha:
WebElement firstName = driver.findElement(By.cssSelector('input[name='first_name']'));
Ing CSS, kita bisa nggunakake #
notasi kanggo milih id
atribut unsur:
Tuladha:
driver.findElement(By.cssSelector('input#firstname')); //or driver.findElement(By.cssSelector('#firstname'));
Prinsip sing padha bisa digunakake kanggo nemokake elemen kanthi class
atribut
Kita nggunakake .
notasi
driver.findElement(By.cssSelector('input.myForm')); //or driver.findElement(By.cssSelector('.myForm'));
Cathetan:Ati-ati banget nalika nggunakake . notasi amarga bisa ana akeh elemen web ing sumber HTML kanthi atribut kelas sing padha.Kadhangkala perlu luwih spesifik karo kritéria pamilihan supaya bisa nemokake elemen sing bener.
Nilai tampilan bisa uga 'ora ana' utawa 'blok' gumantung saka panggilan ajax. Ing kahanan iki, kita kudu nemokake elemen kanthi klasa lan gaya.
Tuladha:
driver.findElement(By.cssSelector('div[class='ajax_enabled'] [style='display:block']'));
Ing WebDriver, kepiye sampeyan nemokake elemen sing atribute ngemot nilai sing ora sampeyan pilih? Contone pamilih CSS iki nuduhake carane ora dipilih miturut nilai atribut tartamtu
Umpama sampeyan duwe akeh elemen sing nuduhake atribut lan nilai atribut sing padha, nanging sawetara elemen kasebut duwe variabel liyane sing ditambah karo nilai kasebut. contone:
Ing cuplikan ing ndhuwur, kita pengin milih dina sing kasedhiya (yaiku loro sing pungkasan div
elemen)
Kaya sing bisa dideleng, kabeh papat div ngemot 'dina tanggalan-' nanging sing loro pisanan uga ngemot 'ora kasedhiya' sing ora dikarepake.
Pamilih CSS kanggo Ora milih loro div pertama yaiku
driver.findElement(By.cssSelector('div[class*=calendar-day-]:not([class*='unavailable'])'));'
Kanggo nemokake tag gambar, kita nggunakake:
driver.findElement(By.cssSelector('div#logo img'));
Ana kesempatan nalika ana macem-macem elemen bocah ing elemen induk sing padha kayata elemen dhaptar
- Apple
- Orange
- Banana
Kaya sing bisa dideleng, elemen dhaptar individu ora ana id sing ana gandhengane. Kanggo nemokake elemen kanthi teks 'Oranye', kita kudu nggunakake nth-of-type
.
Tuladha:
driver.findElement(By.cssSelector('ul#fruit li:nth-of-type(2)'));
Kajaba iku, kanggo milih elemen bocah pungkasan, yaiku 'Pisang', kita nggunakake:
driver.findElement(By.cssSelector('ul#fruit li:last-child'));
Kita bisa nggunakake matrik senar kanggo nemokake elemen kanthi Ids sing digawe kanthi dinamis.
Ing conto iki, kabeh telung unsur div ngemot tembung 'acak'.
Kanggo milih sing pertama div
elemen, kita bakal nggunakake ^=
tegese 'diwiwiti karo':
driver.findElement(By.cssSelector('div[id^='123']'));
Kanggo milih sing nomer loro div
elemen, kita bakal nggunakake $=
tegese 'dipungkasi karo':
driver.findElement(By.cssSelector('div[id$='456']'));
Kanggo milih sing pungkasan div
elemen sing bakal digunakake *=
tegese 'sub-string'
driver.findElement(By.cssSelector('div[id*='_pattern_']'));
Kita uga bisa nggunakake contains
driver.findElement(By.cssSelector('div:contains('_pattern_')'));
Wacan luwih lanjut: