Postoje trenuci kada trebamo pristupiti elementima (obično tekstovima) koji se nalaze u HTML tablicama. Međutim, web dizajner rijetko daje atribut id ili ime određenoj ćeliji u tablici. Stoga ne možemo koristiti uobičajene metode poput "By.id ()", "By.name ()" ili "By.cssSelector ()". U ovom je slučaju najpouzdanija opcija pristupiti im metodom "By.xpath ()".
U ovom vodiču naučit ćete-
Kako napisati XPath za tablicu
Pristup ugniježđenim tablicama
Korištenje atributa kao predikata
Prečac: Upotrijebite Inspect Element za pristup tablicama u selenu
Kako napisati XPath za tablicu
Razmotrite HTML kôd u nastavku.
Upotrijebit ćemo XPath za dobivanje unutarnjeg teksta ćelije koji sadrži tekst "četvrta ćelija".
Lokatori XPath u WebDriveru uvijek počinju s dvostrukom kosom crtom naprijed "//", a zatim slijedi nadređeni element . Budući da imamo posla s tablicama, nadređeni element uvijek treba biti oznaka
. Stoga bi prvi dio našeg XPath lokatora trebao početi s "// tablicom".
Korak 2 - dodajte podređene elemente
Element koji se nalazi neposredno ispod
je
, tako da možemo reći da je
"dijete"
. A također,
je "roditelj"
. Svi podređeni elementi u XPathu postavljaju se s desne strane svog roditeljskog elementa, odvojeni jednom kosom crtom naprijed "/" kao kod prikazan dolje.
Korak 3 - dodajte predikate
Element
sadrži dvije oznake
. Sada možemo reći da su ove dvije
oznake "djeca" od
. Slijedom toga, možemo reći da je
roditelj oba elementa
.
Druga stvar koju možemo zaključiti je da su dva
elementa braća i sestre. Braća i sestre odnose se na dječje elemente koji imaju istog roditelja .
Da bismo došli do
kojem želimo pristupiti (onog s tekstom "četvrta ćelija"), prvo moramo pristupiti drugom
, a ne prvom. Ako jednostavno napišemo "// table / tbody / tr", tada ćemo pristupiti prvoj
oznaci.
Pa, kako onda pristupiti drugom
? Odgovor je na upotrebu predikata .
Predikati su brojevi ili HTML atributi zatvoreni u par uglatih zagrada "[]" koji razlikuju podređeni element od njegove braće i sestara . Budući da je
kojem trebamo pristupiti drugi, koristit ćemo "[2]" kao predikat.
Ako nećemo koristiti predikat, XPath će pristupiti prvom bratu ili sestri. Stoga možemo pristupiti prvom
koristeći bilo koji od ovih XPath kodova.
Korak 4 - Dodajte sljedeće dijete elemente pomoću odgovarajućih predikata
Sljedeći element kojem trebamo pristupiti je drugi
. Primjenjujući načela koja smo naučili iz koraka 2 i 3, dovršit ćemo naš XPath kôd kao da je prikazan u nastavku.
Sad kad imamo ispravan lokator XPath, već možemo pristupiti ćeliji koju smo željeli i dobiti njezin unutarnji tekst pomoću donjeg koda. Pretpostavlja se da ste gore spremljeni HTML kôd spremili kao "newhtml.html" na svoj C pogon.
javna statička void glavna (String [] args) {String baseUrl = "http://demo.guru99.com/test/write-xpath-table.html";Upravljački program za WebDriver = novi FirefoxDriver ();driver.get (baseUrl);String innerText = driver.findElement (By.xpath ("// tablica / tjelo / tr [2] / td [2]")). GetText ();System.out.println (innerText);driver.quit ();}}
Pristup ugniježđenim tablicama
Ista načela o kojima smo gore raspravljali primjenjuju se na ugniježđene tablice. Ugnježđene tablice su tablice smještene unutar druge tablice . Primjer je prikazan u nastavku.
Da bismo pristupili ćeliji s tekstom "4-5-6" pomoću "// roditelj / dijete" i predikatnim konceptima iz prethodnog odjeljka, trebali bismo biti u mogućnosti pronaći XPath kôd u nastavku.
Dolje navedeni WebDriver kôd trebao bi moći dohvatiti unutarnji tekst ćelije kojoj pristupamo.
Izlaz u nastavku potvrđuje da je unutarnjoj tablici uspješno pristupljeno.
Korištenje atributa kao predikata
Ako je element napisan duboko u HTML kodu tako da je broj koji se koristi za predikat vrlo teško odrediti, umjesto toga možemo koristiti jedinstveni atribut tog elementa.
U primjeru u nastavku, ćelija "New York to Chicago" nalazi se duboko u HTML kodu početne stranice Mercury Toursa.
U ovom slučaju kao predikat možemo koristiti jedinstveni atribut tablice (width = "270"). Atributi se koriste kao predikati dodavanjem prefiksa sa simbolom @ . U gornjem primjeru, ćelija "New York do Chicaga" nalazi se u prvoj
četvrtoj
, tako da bi naš XPath trebao biti kao što je prikazano u nastavku.
Imajte na umu da kada stavimo XPath kôd u Javu, trebamo upotrijebiti crtu unatrag crte "\" za dvostruke navodnike s obje strane "270", tako da argument niza By.xpath () neće biti prerano prekinut .
Sada smo spremni pristupiti toj ćeliji pomoću donjeg koda.
By.xpath () obično se koristi za pristup elementima tablice.
Ako je element napisan duboko u HTML kodu tako da je broj koji se koristi za predikat vrlo teško odrediti, umjesto toga možemo koristiti jedinstveni atribut tog elementa.
Atributi se koriste kao predikati dodavanjem prefiksa sa simbolom @.
Upotrijebite Inspect Element za pristup tablicama u selenu