Mõnikord peame juurde pääsema HTML-tabelites olevatele elementidele (tavaliselt tekstidele). Kuid veebidisainer esitab tabeli teatud lahtrile ID või nime atribuudi väga harva. Seetõttu ei saa me kasutada tavapäraseid meetodeid, näiteks "By.id ()", "By.name ()" või "By.cssSelector ()". Sel juhul on kõige usaldusväärsem võimalus neile juurde pääseda, kasutades meetodit "By.xpath ()".
Selles õpetuses saate teada
Kuidas kirjutada XPath tabeli jaoks
Juurdepääs pesastatud tabelitele
Atribuutide kasutamine predikaatidena
Otsetee: kasutage seleenis olevatele tabelitele juurdepääsemiseks elementi Kontrolli
Kuidas kirjutada XPath tabeli jaoks
Mõelge allpool olevale HTML-koodile.
Rakenduse "neljas lahter" sisaldava lahtri sisemise teksti saamiseks kasutame XPathi.
1. samm - määrake vanemelement (tabel)
Webathriveri XPathi lokaatorid algavad alati kahekordse kaldkriipsuga "//" ja seejärel järgnevad vanemelement . Kuna tegemist on tabelitega, peaks vanemelement olema alati silt
. Seetõttu peaks meie XPathi lokaatori esimene osa algama tähega "// table".
2. samm - lisage lapse elemendid
Otse all olev element on
, nii et võime öelda, et
on
-i "laps". Ja ka on
"vanem". Kõik XPathi alamelemendid paigutatakse nende vanemelemendist paremale, eraldatuna ühe kaldkriipsuga "/" nagu allpool näidatud kood.
3. samm - lisage predikaadid
Element
sisaldab kahte silti
. Nüüd võime öelda, et need kaks
silti on
"lapsed". Järelikult võime öelda, et
on mõlema elemendi
vanem.
Teine asi, mille võime järeldada, on see, et kaks
elementi on õed-vennad. Õed-vennad viitavad lapse elementidele, kellel on sama vanem .
juurde pääsemiseks, millele soovime juurde pääseda (see, millel on tekst "neljas lahter"), peame esmalt juurde pääsema teisele
, mitte esimesele. Kui kirjutame lihtsalt "// table / tbody / tr", siis pääseme juurde esimesele
märgendile.
Niisiis, kuidas me pääseme juurde teisele
? Vastus sellele on kasutada predikaate .
Predikaadid on arv nurki või HTML-atribuute, mis on ühendatud nurksulgude paariga "[]", mis eristavad lapse elementi õdedest-vendadest . Kuna
, millele peame juurde pääsema, on teine, kasutame predikaadina "[2]".
Kui me ei kasuta ühtegi predikaati, pääseb XPath esimesele vennale. Seetõttu pääseme esimesele
-le juurde, kasutades ühte neist XPath-koodidest.
4. samm - lisage edukad lapseelemendid, kasutades sobivaid predikaate
Järgmine element, millele peame juurde pääsema, on teine
. Rakendades 2. ja 3. sammust õpitud põhimõtteid, viime meie XPath-koodi lõplikult sarnaseks allpool näidatule.
Nüüd, kui meil on õige XPathi lokaator, pääseme juba soovitud lahtrile juurde ja saate selle sisemise teksti alloleva koodi abil. Eeldatakse, et olete ülaltoodud HTML-koodi oma C-draivi salvestanud kui "newhtml.html".
Samad põhimõtted, mida eespool arutati, kehtivad pesastatud tabelite kohta. Pesastatud tabelid on teise tabeli sees olevad tabelid . Näide on toodud allpool.
Lahtrile juurdepääsuks tekstiga "4-5-6", kasutades eelmise jaotise mõisteid "// parent / child" ja predikaatide mõisteid, peaksime suutma välja mõelda allpool oleva XPath-koodi.
Allpool olev WebDriveri kood peaks suutma hankida selle lahtri sisemise teksti, millele me juurde pääseme.
Allpool olev väljund kinnitab, et sisemisele tabelile pääses edukalt juurde.
Atribuutide kasutamine predikaatidena
Kui element on HTML-koodi sisse kirjutatud nii, et predikaadi jaoks kasutatavat arvu on väga raske kindlaks teha, võime selle asemel kasutada selle elemendi unikaalset atribuuti.
Allpool toodud näites asub lahter "New York - Chicago" sügaval Mercury Toursi kodulehe HTML-koodis.
Sellisel juhul võime predikaadina kasutada tabeli ainulaadset atribuuti (width = "270"). Atribuute kasutatakse predikaatidena, lisades neile sümboli @ . Ülaltoodud näites asub lahter "New York - Chicago" neljanda
esimeses
ja seega peaks meie XPath olema selline, nagu allpool näidatud.
Pidage meeles, et kui paneme XPath-koodi Java-sse, peaksime põgenemismärgi tahapoole kaldkriipsu "\" kasutama kahekordsete jutumärkide jaoks "270" mõlemal küljel, nii et By.xpath () stringi argumenti ei lõpetata enneaegselt .
Oleme nüüd allpool oleva koodi abil valmis sellele lahtrile juurde pääsema.
By.xpath () kasutatakse tavaliselt tabeli elementidele juurdepääsemiseks.
Kui element on HTML-koodi sisse kirjutatud nii, et predikaadi jaoks kasutatavat arvu on väga raske kindlaks teha, võime selle asemel kasutada selle elemendi unikaalset atribuuti.
Atribuute kasutatakse predikaatidena, lisades neile sümboli @.
Kasutage seleenis olevatele tabelitele juurdepääsemiseks elementi Kontrolli