Að finna þætti eftir CSS völdum er ákjósanlegasta leiðin þar sem það er fljótlegra og læsilegra en XPath.
Þessi kennsla gefur dæmi um hvernig staðsetja má vefþætti í Selen með CSS völdum.
Við skulum ímynda okkur að við séum með merki með eftirfarandi eiginleika [auðkenni, flokkur, nafn, gildi]
Almenn leið til að finna þætti eftir eiginleikum er:
css = element_name[='']
Dæmi:
WebElement firstName = driver.findElement(By.cssSelector('input[name='first_name']'));
Í CSS getum við notað #
tákn til að velja id
eiginleiki frumefnis:
Dæmi:
driver.findElement(By.cssSelector('input#firstname')); //or driver.findElement(By.cssSelector('#firstname'));
Sama meginregla er hægt að nota til að staðsetja þætti eftir class
eiginleiki.
Við notum .
nótnaskrift.
driver.findElement(By.cssSelector('input.myForm')); //or driver.findElement(By.cssSelector('.myForm'));
Athugið:Gæta skal sérstakrar varúðar þegar þú notar . táknun þar sem það gætu verið margir vefþættir á HTML uppruna með sama flokk eiginleika.Stundum þarf að vera nákvæmari með valforsendur til að finna réttan þátt.
Gildi skjásins gæti annað hvort verið „ekkert“ eða „lokað“ eftir ajax símtalinu. Í þessum aðstæðum verðum við að finna frumefnið bæði eftir stétt og stíl.
Dæmi:
driver.findElement(By.cssSelector('div[class='ajax_enabled'] [style='display:block']'));
Hvernig finnurðu í WebDriver þætti sem hafa eiginleika sem innihalda gildi sem þú vilt ekki velja? Þetta CSS valdæmi sýnir hvernig EKKI á að velja eftir sérstöku eigindagildi
Segjum sem svo að þú hafir marga þætti sem deila sama eiginleiki og eiginleiksgildi, en sumir af þessum þáttum hafa aðrar breytur sem fylgir gildinu. td:
Í ofangreindu broti viljum við velja dag sem er í boði (þ.e. tveir síðustu div
þættirnir)
Eins og sjá má innihalda allar fjórar deildir „dagatal“ - en fyrstu tvær innihalda einnig „ófáanlegt“ sem við viljum ekki.
CSS valinn fyrir að velja ekki fyrstu tvo deildina er
driver.findElement(By.cssSelector('div[class*=calendar-day-]:not([class*='unavailable'])'));'
Til að finna myndamerkið notum við:
driver.findElement(By.cssSelector('div#logo img'));
Það eru tilefni þegar það eru mörg barnaefni innan sama foreldraþáttar svo sem listaþættir
- Apple
- Orange
- Banana
Eins og sjá má hafa einstakir listareiningar ekki neitt auðkenni sem tengjast þeim. Til að finna frumefnið með textanum ‘Orange’ verðum við að nota nth-of-type
.
Dæmi:
driver.findElement(By.cssSelector('ul#fruit li:nth-of-type(2)'));
Sömuleiðis notum við: til að velja síðasta þáttinn í barninu, þ.e.a.s.
driver.findElement(By.cssSelector('ul#fruit li:last-child'));
Við getum notað strengjamótara til að finna þætti með virkum auðkennum.
Í þessu dæmi innihalda allir þrír div-þættirnir orðið „random“.
Til að velja fyrsta div
frumefni, við myndum nota ^=
sem þýðir „byrjar með“:
driver.findElement(By.cssSelector('div[id^='123']'));
Til að velja annað div
frumefni, við myndum nota $=
sem þýðir „endar með“:
driver.findElement(By.cssSelector('div[id$='456']'));
Til að velja síðasta div
frumefni sem við myndum nota *=
sem þýðir „undirstrengur“
driver.findElement(By.cssSelector('div[id*='_pattern_']'));
Við getum líka notað contains
driver.findElement(By.cssSelector('div:contains('_pattern_')'));
Frekari lestur: