XPath sisse Selenium: Kuidas leida ja kirjutada? (Tekst, Sisaldab JA)

Milles XPath on Selenium?

XPath sisse Selenium on XML-tee, mida kasutatakse lehe HTML-struktuuris navigeerimiseks. See on süntaks või keel veebilehe mis tahes elemendi leidmiseks XML-i teeavaldise abil. XPathi saab kasutada nii HTML- kui ka XML-dokumentide jaoks, et leida HTML-i DOM-i struktuuri abil veebilehel mis tahes elemendi asukoht.

In Selenium automatiseerimine, kui elemente ei leia üldised lokaatorid nagu id, klass, nimi jne, siis kasutatakse veebilehelt elemendi leidmiseks XPathi.

Selles õpetuses õpime tundma Xpathi ja erinevaid XPathi avaldisi, et leida keerukaid või dünaamilisi elemente, mille atribuudid muutuvad dünaamiliselt värskendamisel või mis tahes toimingul.

XPath süntaks

XPath sisaldab veebilehel asuva elemendi teed. Standardne XPathi süntaks XPathi loomiseks on.

Xpath=//tagname[@attribute='value']

XPathi põhivormingut seleenis selgitatakse allpool koos ekraanipildiga.

XPath süntaks
XPathi põhivorming
  • // : Valige praegune sõlm.
  • Sildi nimi: Konkreetse sõlme sildinimi.
  • @: Valige atribuut.
  • Atribuut: Sõlme atribuudi nimi.
  • Maksumus: Atribuudi väärtus.

Elemendi veebilehtedel täpseks leidmiseks on erinevat tüüpi lokaatoreid:

XPathi lokaatorid Veebilehelt leiate erinevaid elemente
ID Elemendi leidmiseks elemendi ID järgi
Klassi nimi Elemendi leidmiseks elemendi klassinime järgi
Nimi Elemendi leidmiseks elemendi nime järgi
Lingi tekst Elemendi leidmiseks lingi teksti järgi
XPath XPath on vajalik dünaamilise elemendi leidmiseks ja veebilehe erinevate elementide vahel liikumiseks
CSS-i tee CSS-i tee otsib ka elemente, millel pole nime, klassi ega ID-d.

X-tee tüübid

XPath on kahte tüüpi:

1) Absoluutne XPath

2) Suhteline XPath

Absoluutne XPath

See on otsene viis elemendi leidmiseks, kuid absoluutse XPathi puuduseks on see, et kui elemendi teekonnas tehakse muudatusi, siis XPath ebaõnnestub.

XPathi põhiomadus on see, et see algab ühe kaldkriipsuga (/), mis tähendab, et saate valida elemendi juursõlmest.

Allpool on näide alloleval ekraanil näidatud elemendi absoluutsest Xpath-avaldisest.

MÄRKUS. Selle kohta saate harjutada järgmist XPathi harjutust http://demo.guru99.com/test/selenium-xpath.html

Click siin kui video pole juurdepääsetav

Absoluutne XPath:

/html/body/div[2]/div[1]/div/h4[1]/b/html[1]/body[1]/div[2]/div[1]/div[1]/h4[1]/b[1]

Absoluutne XPath

Absoluutne XPath

Suhteline Xpath

Suhteline Xpath algab HTML DOM-i struktuuri keskelt. See algab kahekordse kaldkriipsuga (//). See võib otsida elemente kõikjal veebilehel, see tähendab, et pole vaja kirjutada pikka xpath-i ja võite alustada HTML-i DOM-i struktuuri keskelt. Suhteline Xpath on alati eelistatud, kuna see ei ole juurelemendist täielik tee.

Allpool on näide sama elemendi suhtelisest XPath-avaldisest, mis on näidatud alloleval ekraanil. See on levinud vorming, mida kasutatakse XPathi elemendi leidmiseks.

Click siin kui video pole juurdepääsetav

Relative XPath: //div[@class='featured-box cloumnsize1']//h4[1]//b[1]

Suhteline XPath

Suhteline XPath

Mis on XPathi teljed.

XPathi teljed otsivad XML-dokumendis praegusest kontekstisõlmest erinevaid sõlme. XPathi teljed on meetodid, mida kasutatakse dünaamiliste elementide leidmiseks, mis muidu pole võimalikud tavalise XPathi meetodiga, millel puudub ID, klassinimi, nimi jne.

Telgede meetodeid kasutatakse nende elementide leidmiseks, mis värskendamisel või muudel toimingutel dünaamiliselt muutuvad. Tavaliselt kasutatakse vähe telgede meetodeid Selenium Veebidraiver nagu laps, vanem, esivanem, õde-vend, eelnev, mina jne.

Kuidas dünaamilist XPathi sisse kirjutada Selenium Veebidraiver

1) Põhiline XPath

XPath avaldis valige sõlmed või sõlmede loend selliste atribuutide alusel nagu ID, nimi, klassinimijne XML-dokumendist, nagu allpool näidatud.

Xpath=//input[@name='uid']

Siin on link lehele pääsemiseks http://demo.guru99.com/test/selenium-xpath.html

Põhiline XPath

Põhiline XPath

Veel mõned põhilised xpath avaldised:

Xpath=//input[@type='text']
Xpath=//label[@id='message23']
Xpath=//input[@value='RESET']
Xpath=//*[@class='barone']
Xpath=//a[@href='http://demo.guru99.com/']
Xpath=//img[@src='//guru99.com/images/home/java.png']

2) Sisaldab ()

Contains() on XPathi avaldises kasutatav meetod. Seda kasutatakse siis, kui mis tahes atribuudi väärtus muutub dünaamiliselt, näiteks sisselogimisinfo.

Sisaldamise funktsioonil on võimalus leida osalise tekstiga element, nagu on näidatud allolevas XPathi näites.

Selles näites proovisime elementi tuvastada, kasutades atribuudi osalist tekstiväärtust. Allolevas XPathi avaldises kasutatakse esitamisnupu asemel osalist väärtust 'sub'. Võib täheldada, et element leitakse edukalt.

„Tüüp” täielik väärtus on „submit”, kuid kasutatakse ainult osalist väärtust „sub”.

Xpath=//*[contains(@type,'sub')]

Täielik nimi "name" on "btnLogin", kuid kasutab ainult osalist väärtust "btn".

Xpath=//*[contains(@name,'btn')]

Ülaltoodud avaldises oleme võtnud atribuudina "name" ja osalise väärtusena "btn", nagu on näidatud alloleval ekraanipildil. See leiab 2 elementi (LOGIN & RESET), kuna nende atribuut "name" algab tähega "btn".

sisaldab()

Samamoodi oleme alltoodud avaldises võtnud atribuudiks 'id' ja osaliseks väärtuseks 'message'. See leiab 2 elementi ("Kasutaja ID ei tohi olla tühi" ja "Parool ei tohi olla tühi"), kuna selle atribuut "id" algab sõnadega "message".

Xpath=//*[contains(@id,'message')]

sisaldab()

Allolevas väljendis oleme võtnud lingi "teksti" atribuudina ja "siin" osalise väärtusena, nagu on näidatud alloleval ekraanipildil. See leiab lingi ("siit"), kuna kuvab teksti "siin".

Xpath=//*[contains(text(),'here')]
Xpath=//*[contains(@href,'guru99.com')]

sisaldab()

3) VÕI & JA kasutamine

VÕI-avaldises kasutatakse kahte tingimust, kas 1. tingimus VÕI 2. tingimus peaks olema tõene. See kehtib ka siis, kui mõni tingimus on tõene või võib-olla mõlemad. Tähendab, et elemendi leidmiseks peaks üks tingimus olema tõene.

Allolevas XPathi avaldises identifitseerib see elemendid, mille üks või mõlemad tingimused on tõesed.

Xpath=//*[@type='submit' or @name='btnReset']

Mõlema elemendi esiletõstmine „LOGIN” elemendina, millel on atribuut „tüüp”, ja „RESET” elemendina, millel on atribuut „nimi”.

Kasutades VÕI & JA

AND-avaldises kasutatakse kahte tingimust, elemendi leidmiseks peavad mõlemad tingimused olema tõesed. See ei leia elementi, kui mõni tingimus on vale.

Xpath=//input[@type='submit' and @name='btnLogin']

Allolevas avaldises elemendi „LOGIN” esiletõstmine, kuna sellel on nii atribuut „tüüp” kui ka „nimi”.

Kasutades VÕI & JA

4) XPat algab-koos

XPath algab tähega () on funktsioon, mida kasutatakse veebielemendi leidmiseks, mille atribuudi väärtust muudetakse värskendamisel või muude dünaamiliste toimingutega veebilehel. Selle meetodi puhul sobitatakse atribuudi algustekst, et leida element, mille atribuudi väärtus muutub dünaamiliselt. Samuti võite leida elemente, mille atribuudi väärtus on staatiline (ei muutu).

Näiteks -: oletame, et konkreetse elemendi ID muutub dünaamiliselt nagu:

Id=” sõnum12″

Id=” sõnum345″

Id=” sõnum8769″

ja nii edasi.. aga esialgne tekst on sama. Sel juhul kasutame avaldist Start-with.

Allolevas avaldises on kaks elementi ID-ga, mis algavad sõnumiga (st 'Kasutaja-ID ei tohi olla tühi' ja 'Parool ei tohi olla tühi'). Allolevas näites leiab XPath need elemendid, mille 'ID' algab sõnaga 'message'.

Xpath=//label[starts-with(@id,'message')]

XPat algab

5) XPath Text() funktsioon

. XPath text() funktsioon on seleeni veebidraiveri sisseehitatud funktsioon, mida kasutatakse elementide asukoha leidmiseks veebielemendi teksti põhjal. See aitab leida täpseid tekstielemente ja tuvastab elemendid tekstisõlmede komplektis. Paigutavad elemendid peaksid olema stringi kujul.

Selles avaldises leiame tekstifunktsiooniga elemendi täpse tekstivastusega, nagu allpool näidatud. Meie puhul leiame elemendi tekstiga “UserID”.

Xpath=//td[text()='UserID']

XPath Text() funktsioon

XPath telgede meetodid

Neid XPathi telgede meetodeid kasutatakse keerukate või dünaamiliste elementide leidmiseks. Allpool näeme mõnda neist meetoditest.

Nende XPathi telgede meetodi illustreerimiseks kasutame Guru99 panga demosaiti.

1) Jälgimine

Valib kõik praeguse sõlme ( ) dokumendis olevad elemendid [ UserID sisestuskast on praegune sõlm], nagu on näidatud alloleval ekraanil.

Xpath=//*[@type='text']//following::input

Järel

Seal on 3 "sisend" sõlme, mis sobivad "järgiva" telje abil - parool, sisselogimis- ja lähtestamisnupp. Kui soovite keskenduda mõnele konkreetsele elemendile, võite kasutada allolevat XPathi meetodit:

Xpath=//*[@type='text']//following::input[1]

XPathi saab vastavalt nõudele muuta, pannes [1],[2]……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….

Kui sisendiks on 1, leiab allolev ekraanipilt konkreetse sõlme, milleks on sisestuskasti element "Parool".

Järel

2) Esivanem

Esivanematelg valib praeguse sõlme kõik esivanemate elemendid (vanavanem, vanem jne), nagu on näidatud alloleval ekraanil.

Allolevas avaldises leiame praeguse sõlme ("ETTEVÕTTE TESTIMINE") esivanemate elemendi.

Xpath=//*[text()='Enterprise Testing']//ancestor::div

Esivanem

Seal on 13 "div" sõlme, mis sobivad "esivanema" telje abil. Kui soovite keskenduda mõnele konkreetsele elemendile, võite kasutada allolevat XPathi, kus muudate numbreid 1, 2 vastavalt oma nõudele:

Xpath=//*[text()='Enterprise Testing']//ancestor::div[1]

XPathi saab muuta vastavalt nõudele, pannes [1], [2]……………………………………………………………………………………………

3) Laps

Valib kõik aktiivse sõlme alamelemendid (Java), nagu on näidatud alloleval ekraanil.

Xpath=//*[@id='java_technologies']//child::li

Laps

Seal on 71 "li" sõlme, mis sobivad "lapse" telje abil. Kui soovite keskenduda mõnele konkreetsele elemendile, võite kasutada allolevat xpath:

Xpath=//*[@id='java_technologies']//child::li[1]

Saate muuta xpath vastavalt nõudele, pannes [1],[2]………… ja nii edasi.

4) Eelnev

Valige kõik sõlmed, mis asuvad enne praegust sõlme, nagu on näidatud alloleval ekraanil.

Allolevas avaldises identifitseerib see kõik sisendelemendid enne nuppu LOGIN, see tähendab Kasutajatunnus ja parool sisendelement.

Xpath=//*[@type='submit']//preceding::input

Eelnev

Seal on 2 sisendsõlme, mis sobivad "eelmise" telje abil. Kui soovite keskenduda mõnele konkreetsele elemendile, võite kasutada allolevat XPathi:

Xpath=//*[@type='submit']//preceding::input[1]

Saate muuta xpath vastavalt nõudele, pannes [1],[2]………… ja nii edasi.

5) Järgnev õde-vend

Valige kontekstisõlme järgmised õed-vennad. Õed-vennad on praeguse sõlmega samal tasemel, nagu on näidatud alloleval ekraanil. See leiab elemendi pärast praegust sõlme.

xpath=//*[@type='submit']//following-sibling::input

Jälgiv-vend

Üks sisendsõlmede sobitamine, kasutades telge „järgmine õde”.

6) Lapsevanem

Valib praeguse sõlme vanema, nagu on näidatud alloleval ekraanil.

Xpath=//*[@id='rt-feature']//parent::div

Suhteline

Seal on 65 "div" sõlme, mis sobivad "vanema" telje abil. Kui soovite keskenduda mõnele konkreetsele elemendile, võite kasutada allolevat XPathi:

Xpath=//*[@id='rt-feature']//parent::div[1]

XPathi saab vastavalt nõudele muuta, pannes [1],[2]……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….

7) Ise

Valib praeguse sõlme või "ise" tähendab, et see näitab sõlme ennast, nagu on näidatud alloleval ekraanil.

Ise

Ühe sõlme sobitamine "ise" telje abil. See leiab alati ainult ühe sõlme, kuna see esindab minaelementi.

Xpath =//*[@type='password']//self::input

8) järglane

Valib praeguse sõlme järeltulijad, nagu on näidatud alloleval ekraanil.

Allolevas avaldises identifitseerib see kõik praeguse elemendi järeltulijad ('Main body surround' raamielement), mis tähendab sõlme all (lapsesõlm , lapselapse sõlm jne).

Xpath=//*[@id='rt-feature']//descendant::a

Järglane

Seal on 12 "lingi" sõlme, mis sobivad "järglase" telje abil. Kui soovite keskenduda mõnele konkreetsele elemendile, võite kasutada allolevat XPathi:

Xpath=//*[@id='rt-feature']//descendant::a[1]

XPathi saab vastavalt nõudele muuta, pannes [1],[2]……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….

kokkuvõte

XPath on vajalik veebilehelt elemendi leidmiseks, et teha selle konkreetse elemendiga toiming.

  • Seleeni XPath on kahte tüüpi:
    • Absoluutne XPath
    • Suhteline XPath
  • XPathi teljed on meetodid, mida kasutatakse dünaamiliste elementide leidmiseks, mida muidu pole tavalise XPath meetodiga võimalik leida
  • XPathi avaldis vali sõlmed või sõlmede loend XML-dokumendi atribuutide, nagu ID, nimi, klassinimi jne, alusel.

Kontrollige ka: - Selenium Õpetus algajatele: õppige WebDriver 7 päevaga

Loe rohkem…