Kartais mums reikia prieiti prie elementų (dažniausiai tekstų), kurie yra HTML lentelėse. Tačiau labai retai interneto dizaineris pateikia tam tikros lentelės langelio ID arba vardo atributą. Todėl negalime naudoti įprastų metodų, tokių kaip „By.id ()“, „By.name ()“ arba „By.cssSelector ()“. Šiuo atveju patikimiausias variantas yra prieiga prie jų naudojant „By.xpath ()“ metodą.
Šioje pamokoje sužinosite
Kaip parašyti XPath lentelei
Prieiga prie įdėtų lentelių
Atributų naudojimas kaip predikatų
Spartusis klavišas: naudokite „Tikrinti elementą“, kad pasiektumėte seleno lenteles
Kaip parašyti XPath lentelei
Apsvarstykite toliau pateiktą HTML kodą.
Norėdami gauti vidinį langelio tekstą, kuriame yra tekstas „ketvirtoji ląstelė“, naudosime XPath.
1 žingsnis - nustatykite tėvų elementą (lentelę)
„Webathriver“ „XPath“ lokatoriai visada prasideda dvigubu pasviruoju pasviruoju brūkšniu „//“, o po to - pagrindiniu elementu . Kadangi mes susiduriame su lentelėmis, pagrindinis elementas visada turėtų būti žyma
. Pirmoji XPath lokatoriaus dalis turėtų prasidėti „// lentelė“.
2 žingsnis - pridėkite vaiko elementų
Elementas tiesiai po
yra
, todėl galime sakyti, kad
yra
vaikas. Be to,
yra
„tėvas“. Visi antriniai elementai „XPath“ yra dedami į dešinę nuo jų pirminio elemento, atskirti vienu į priekį pasviruoju brūkšniu „/“, kaip žemiau pateiktas kodas.
3 žingsnis - pridėkite predikatus
Elemente
yra dvi žymos
. Dabar galime sakyti, kad šios dvi
žymos yra
„vaikai“. Taigi galime sakyti, kad
yra abiejų
elementų tėvas.
Kitas dalykas, kurį galime padaryti, yra tai, kad du
elementai yra broliai ir seserys. Broliai ar seserys nurodo vaiko elementus, turinčius tą patį tėvą .
Norėdami patekti į
, kurį norime pasiekti (tą, kuriame yra tekstas „ketvirtoji ląstelė“), pirmiausia turime pasiekti antrąjį
, o ne pirmąjį. Jei paprasčiausiai parašysime „// table / tbody / tr“, tada prieisime prie pirmosios
žymos.
Taigi, kaip tada pasiekti antrąjį
? Atsakymas į tai yra naudoti „ Predicates“ .
Predikatai yra skaičiai arba HTML atributai, įterpti į laužtinių skliaustų pora „[]“, kurie skiria vaiko elementą nuo jo brolių ir seserų . Kadangi
, prie kurio turime prisijungti, yra antrasis, kaip predikatą naudosime „[2]“.
Jei nenaudosime jokio predikato, „XPath“ pasieks pirmąjį brolį. Todėl mes galime pasiekti pirmąjį
Kitas elementas, prie kurio turime prisijungti, yra antrasis
. Taikydami principus, kurių išmokome atlikdami 2 ir 3 žingsnius, užbaigsime savo XPath kodą panašų į žemiau pateiktą.
Dabar, kai turime tinkamą „XPath“ lokatorių, mes jau galime pasiekti norimą langelį ir gauti jo vidinį tekstą naudodami žemiau pateiktą kodą. Laikoma, kad aukščiau esantį HTML kodą C diske išsaugojote kaip „newhtml.html“.
Tie patys aukščiau aptarti principai taikomi įdėtoms lentelėms. Įterptosios lentelės yra lentelės, esančios kitoje lentelėje . Toliau pateiktas pavyzdys.
Norėdami pasiekti langelį su tekstu „4-5-6“ naudodami ankstesnio skyriaus „// tėvas / vaikas“ ir predikatų sąvokas, turėtume sugebėti sugalvoti žemiau esantį „XPath“ kodą.
Žemiau pateiktas „WebDriver“ kodas turėtų sugebėti nuskaityti vidinį langelio, prie kurio prieiname, tekstą.
Žemiau pateiktas išvestis patvirtina, kad buvo sėkmingai pasiekta vidinė lentelė.
Atributų naudojimas kaip predikatų
Jei elementas yra parašytas giliai HTML kode taip, kad predikatui naudojamą skaičių nustatyti labai sunku, vietoj to galime naudoti unikalų šio elemento atributą.
Toliau pateiktame pavyzdyje langelis „Niujorkas į Čikagą“ yra giliai į „Mercury Tours“ pagrindinio puslapio HTML kodą.
Tokiu atveju kaip predikatą galime naudoti lentelės unikalų atributą (plotis = "270"). Atributai naudojami kaip predikatai, prieš juos pridedant simbolį @ . Ankstesniame pavyzdyje langelis „Niujorkas į Čikagą“ yra pirmame ketvirtojo
, todėl mūsų XPath turėtų būti toks, kaip parodyta žemiau.
Atminkite, kad įdėdami „XPath“ kodą į „Java“, mes turėtume naudoti pabėgimo ženklo atgalinį pasvirąjį brūkšnį „\“ dviguboms kabutėms abiejose „270“ pusėse, kad By.xpath () eilutės argumentas nebūtų nutraukiamas anksčiau .
Dabar esame pasirengę pasiekti tą langelį naudodami toliau pateiktą kodą.
By.xpath () paprastai naudojamas norint pasiekti lentelės elementus.
Jei elementas yra parašytas giliai HTML kode taip, kad predikatui naudojamą skaičių nustatyti labai sunku, vietoj to galime naudoti unikalų šio elemento atributą.
Atributai naudojami kaip predikatai, prieš juos pridedant simbolį @.
Norėdami pasiekti selenio lenteles, naudokite elementą „Tikrinti elementą“