Včasih moramo dostopati do elementov (običajno besedil), ki so znotraj tabel HTML. Vendar pa spletni oblikovalec zelo redko poda atribut id ali ime določeni celici v tabeli. Zato ne moremo uporabiti običajnih metod, kot so "By.id ()", "By.name ()" ali "By.cssSelector ()". V tem primeru je najbolj zanesljiva možnost dostopa do njih z metodo "By.xpath ()".
V tej vadnici boste izvedeli-
Kako napisati XPath za tabelo
Dostop do ugnezdenih tabel
Uporaba lastnosti kot predikata
Bližnjica: Uporabite element Preglej za dostop do tabel v selenu
Kako napisati XPath za tabelo
Upoštevajte spodnjo kodo HTML.
XPath bomo uporabili za pridobitev notranjega besedila celice, ki vsebuje besedilo "četrta celica".
1. korak - nastavite nadrejeni element (tabela)
Lokatorji XPath v WebDriverju se vedno začnejo z dvojno poševnico naprej "//", ki ji sledi nadrejeni element . Ker imamo opravka s tabelami, mora biti nadrejeni element vedno oznaka
. Prvi del našega lokatorja XPath bi se zato moral začeti s "// tabelo".
2. korak - dodajte podrejene elemente
Element pod
je
, zato lahko rečemo, da je
"podrejen"
. In tudi
je "nadrejeni"
. Vsi podrejeni elementi v XPathu so postavljeni desno od nadrejenega elementa, ločeni z eno poševnico naprej / /, kot je prikazana spodaj.
3. korak - dodajte predikate
Element
vsebuje dve oznaki
. Zdaj lahko rečemo, da sta ti dve
oznaki "otroci"
. Posledično lahko rečemo, da je
nadrejena za oba elementa
.
Druga stvar, ki jo lahko sklepamo, je, da sta elementa
brata in sestre. Bratje in sestre se nanašajo na podrejene elemente z istim staršem .
Da pridemo do
, do katerega želimo dostopati (tistega z besedilom "četrta celica"), moramo najprej dostopati do drugega
in ne do prvega. Če preprosto napišemo "// table / tbody / tr", bomo dostopali do prve oznake
.
Kako torej dostopati do drugega
? Odgovor na to je uporaba predikatov .
Predikati so številke ali atributi HTML, zaprti v par oglatih oklepajev "[]", ki ločujejo podrejeni element od njegovih bratov in sester . Ker je
, do katerega moramo dostopati, drugi, bomo kot predikat uporabili "[2]".
Če ne bomo uporabili nobenega predikata, bo XPath dostopal do prvega brata ali sestre. Zato lahko do prve
dostopamo z eno od teh XPath kod.
4. korak - z naslednjimi predikati dodajte naslednje podrejene elemente
Naslednji element, do katerega moramo dostopati, je drugi
. Z uporabo načel, ki smo se jih naučili iz korakov 2 in 3, bomo dokončali svojo kodo XPath, kot je prikazano spodaj.
Zdaj, ko imamo pravi lokator XPath, lahko že dostopamo do celice, ki smo jo želeli, in pridobimo njeno notranje besedilo s spodnjo kodo. Predpostavlja se, da ste zgornjo kodo HTML shranili kot "newhtml.html" v pogon C.
Ista načela, obravnavana zgoraj, veljajo za ugnezdene tabele. Vgnezdene tabele so tabele, ki se nahajajo znotraj druge tabele . Primer je prikazan spodaj.
Za dostop do celice z besedilom "4-5-6" z uporabo "// starš / otrok" in predikatnimi koncepti iz prejšnjega razdelka bi morali imeti spodnjo kodo XPath.
Spodnja koda WebDriver mora biti sposobna pridobiti notranje besedilo celice, do katere dostopamo.
Spodnji izhod potrjuje, da je bila notranja tabela uspešno dostopna.
Uporaba lastnosti kot predikata
Če je element zapisan globoko znotraj kode HTML, tako da je številko, ki jo je treba uporabiti za predikat, zelo težko določiti, lahko namesto tega uporabimo edinstveni atribut tega elementa.
V spodnjem primeru se celica »New York to Chicago« nahaja globoko v HTML kodi domače strani Mercury Tours.
V tem primeru lahko kot predikat uporabimo edinstveni atribut tabele (širina = "270"). Atributi se uporabljajo kot predikati, tako da jih predpišejo s simbolom @ . V zgornjem primeru se celica "New York do Chicaga" nahaja v prvi
četrte
, zato bi moral biti naš XPath tak, kot je prikazano spodaj.
Ne pozabite, da bi morali, ko v Java vstavimo kodo XPath, uporabiti poševnico nazaj "\" za dvojne narekovaje na obeh straneh "270", tako da argument niza By.xpath () ne bo predčasno zaključen .
Zdaj smo pripravljeni dostopati do te celice s spodnjo kodo.
By.xpath () se pogosto uporablja za dostop do elementov tabele.
Če je element zapisan globoko znotraj kode HTML, tako da je številko, ki jo je treba uporabiti za predikat, zelo težko določiti, lahko namesto tega uporabimo edinstveni atribut tega elementa.
Atributi se uporabljajo kot predikati, tako da jih predpišejo s simbolom @.
Za dostop do tabel v selenu uporabite element Inspect