XPath be Selenium: Oktatóanyag
Miben van az XPath? Selenium?
XPath be Selenium egy XML-útvonal, amelyet az oldal HTML-struktúrájában való navigáláshoz használnak. Ez egy szintaxis vagy nyelv a weboldal bármely elemének megtalálásához XML elérési út kifejezés használatával. Az XPath HTML- és XML-dokumentumokhoz egyaránt használható, hogy megkeresse a weboldal bármely elemének helyét a HTML DOM-struktúra segítségével.
In Selenium automatizálás, ha az elemeket nem találják meg az általános lokátorok, mint például az id, osztály, név stb., akkor az XPath az elem megkeresésére szolgál a weboldalon.
Ebben az oktatóanyagban megismerjük az Xpath és a különböző XPath kifejezéseket, hogy megtaláljuk azokat az összetett vagy dinamikus elemeket, amelyek attribútumai dinamikusan változnak frissítéskor vagy bármilyen művelet során.
XPath szintaxis
Az XPath tartalmazza a weboldalon található elem elérési útját. A szabványos XPath szintaxis az XPath létrehozásához.
Xpath=//tagname[@attribute='value']
A szelénben lévő XPath alapvető formátumát az alábbiakban magyarázzuk el a képernyőképekkel.
- // : Válassza ki az aktuális csomópontot.
- Címkenév: Az adott csomópont címkeneve.
- @: Válassza ki az attribútumot.
- Tulajdonság: A csomópont attribútum neve.
- Érték: Az attribútum értéke.
Az elem pontos megtalálásához a weboldalakon különböző típusú lokátorok léteznek:
XPath lokátorok | Keressen különböző elemeket a weboldalon |
---|---|
ID | Az elem megkeresése az elem azonosítója alapján |
Osztály név | Az elem megkeresése az elem osztályneve alapján |
Név | Az elem megkeresése az elem neve alapján |
Link szövege | Az elem megkeresése a hivatkozás szövege alapján |
XPath | XPath szükséges a dinamikus elem megtalálásához és a weboldal különböző elemei közötti áthaladáshoz |
CSS elérési út | A CSS elérési út olyan elemeket is megkeres, amelyeknek nincs neve, osztálya vagy azonosítója. |
Az X-út típusai
Kétféle XPath létezik:
1) Abszolút XPath
2) Relatív XPath
Abszolút XPath
Ez a közvetlen módja az elem megtalálásának, de az abszolút XPath hátránya, hogy ha bármilyen változtatás történik az elem útvonalán, akkor az XPath meghiúsul.
Az XPath fő jellemzője, hogy egyetlen perjellel (/) kezdődik, ami azt jelenti, hogy az elemet a gyökércsomópontból választhatja ki.
Az alábbiakban egy példa látható az alábbi képernyőn látható elem abszolút Xpath kifejezésére.
MEGJEGYZÉS: A következő XPath gyakorlatot gyakorolhatja ezen https://demo.guru99.com/test/selenium-xpath.html
Kattints itt ha a videó nem érhető el
Abszolút 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]
Relatív Xpath
Relatív Xpath a HTML DOM-struktúra közepétől kezdődik. Dupla perjellel (//) kezdődik. Bárhol képes keresni az elemeket a weboldalon, így nem kell hosszú xpath-t írni, és a HTML DOM-struktúra közepéről indulhat. A relatív Xpath mindig előnyben részesítendő, mivel ez nem egy teljes elérési út a gyökérelemtől.
Az alábbiakban az alábbi képernyőn látható ugyanazon elem relatív XPath kifejezésének példája. Ez az általános formátum, amellyel az XPath elemet talál.
Kattints itt ha a videó nem érhető el
Relative XPath: //div[@class='featured-box cloumnsize1']//h4[1]//b[1]
Mik azok az XPath tengelyek.
Az XPath tengelyek különböző csomópontokat keresnek az XML-dokumentumban az aktuális környezeti csomópontból. Az XPath tengelyek a dinamikus elemek megtalálására használt módszerek, amelyek egyébként nem lehetségesek normál XPath metódussal, amelynek nincs azonosítója, osztályneve, neve stb. Selenium számos módszert tartalmaz, például Tartalmaz, ÉS, Abszolút XPath és Relatív XPath a dinamikus elemek azonosítására és megkeresésére különféle attribútumok és feltételek alapján.
Az Axes metódusokat arra használjuk, hogy megtalálják azokat az elemeket, amelyek dinamikusan változnak frissítéskor vagy bármely más művelet során. Néhány általánosan használt tengelymódszer létezik Selenium Webdriver mint gyermek, szülő, ős, testvér, előző, én stb.
Hogyan írjunk dinamikus XPath-ot Selenium webdriver
1) Alap XPath
XPath kifejezés jelölje ki a csomópontokat vagy a csomópontok listáját olyan attribútumok alapján, mint pl azonosító, név, osztálynévstb. az XML-dokumentumból az alábbiak szerint.
Xpath=//input[@name='uid']
Itt egy link az oldal eléréséhez https://demo.guru99.com/test/selenium-xpath.html
Még néhány alapvető xpath kifejezés:
Xpath=//input[@type='text'] Xpath=//label[@id='message23'] Xpath=//input[@value='RESET'] Xpath=//*[@class='barone'] Xpath=//a[@href='https://demo.guru99.com/'] Xpath=//img[@src='//guru99.com/images/home/java.png']
2) Tartalmaz()
A Contains() egy XPath kifejezésben használt módszer. Akkor használatos, ha bármely attribútum értéke dinamikusan változik, például a bejelentkezési adatok.
A Tartalma funkció képes megkeresni az elemet részleges szöveggel, ahogy az alábbi XPath példában látható.
Ebben a példában megpróbáltuk azonosítani az elemet az attribútum részleges szöveges értékével. Az alábbi XPath kifejezésben a részleges 'sub' értéket használjuk a küldés gomb helyett. Megfigyelhető, hogy az elemet sikerült megtalálni.
A „Típus” teljes értéke „submit”, de csak a „sub” részértéket használja.
Xpath=//*[contains(@type,'sub')]
A „name” teljes értéke „btnLogin”, de csak a „btn” részértéket használja.
Xpath=//*[contains(@name,'btn')]
A fenti kifejezésben a 'name'-t vettük attribútumként és a 'btn'-t részértékként, amint az az alábbi képernyőképen látható. Ez 2 elemet fog találni (LOGIN & RESET), mivel a "name" attribútumuk "btn"-vel kezdődik.
Hasonlóképpen, az alábbi kifejezésben az „id”-t attribútumnak, az „üzenetet” pedig részértéknek vettük. Ez 2 elemet fog találni ("A felhasználói azonosító nem lehet üres" és "a jelszó nem lehet üres"), mivel az "id" attribútum az "üzenettel" kezdődik.
Xpath=//*[contains(@id,'message')]
Az alábbi kifejezésben a hivatkozás „szövegét” vettük attribútumként, és az „itt” részértéket, ahogy az alábbi képernyőképen látható. Ez megtalálja a linket ("itt"), ahogy az "itt" szöveget jeleníti meg.
Xpath=//*[contains(text(),'here')]
Xpath=//*[contains(@href,'guru99.com')]
3) A VAGY & ÉS billentyűk használata
A VAGY kifejezésben két feltétel használatos, hogy az 1. feltétel VAGY a 2. feltétel igaz legyen. Akkor is alkalmazható, ha valamelyik feltétel igaz, esetleg mindkettő. Azt jelenti, hogy bármely feltételnek igaznak kell lennie az elem megtalálásához.
Az alábbi XPath kifejezésben azonosítja azokat az elemeket, amelyeknek egyetlen vagy mindkét feltétele igaz.
Xpath=//*[@type='submit' or @name='btnReset']
Mindkét elem kiemelése „LOGIN” elemként „type” attribútummal és „RESET” elemként „name” attribútummal.
Az ÉS kifejezésben két feltételt használunk, mindkét feltételnek igaznak kell lennie az elem megtalálásához. Nem talál elemet, ha valamelyik feltétel hamis.
Xpath=//input[@type='submit' and @name='btnLogin']
Az alábbi kifejezésben a 'LOGIN' elem kiemelése, mivel rendelkezik a 'type' és a 'name' attribútumokkal.
4) Xpath kezdődik-val
Az XPath a() karakterrel kezdődik egy függvény, amelyet annak a webes elemnek a megkeresésére használnak, amelynek attribútumértéke megváltozik frissítéskor vagy a weboldal egyéb dinamikus műveletei során. Ebben a metódusban az attribútum kezdőszövegét egyeztetjük, hogy megkeressük azt az elemet, amelynek attribútumértéke dinamikusan változik. Olyan elemeket is találhat, amelyek attribútumértéke statikus (nem változik).
Például -: Tegyük fel, hogy egy adott elem azonosítója dinamikusan változik, például:
Id=” message12”
Id=” message345”
Id=” message8769”
és így tovább.. de a kezdő szöveg ugyanaz. Ebben az esetben a Start-with kifejezést használjuk.
Az alábbi kifejezésben két olyan elem található, amelynek azonosítója az „üzenetet” kezdi (azaz „A felhasználói azonosító nem lehet üres” és „a jelszó nem lehet üres”). Az alábbi példában az XPath megkeresi azokat az elemeket, amelyek 'ID'-je 'message'-vel kezdődik.
Xpath=//label[starts-with(@id,'message')]
5) XPath Text() függvény
A XPath text() függvény a szelén webdriver beépített funkciója, amely az elemek helyének meghatározására szolgál egy webelem szövege alapján. Segít megtalálni a pontos szövegelemeket, és megkeresi az elemeket a szövegcsomópontok halmazán belül. Az elhelyezendő elemek karakterlánc formájúak legyenek.
Ebben a kifejezésben a szövegfüggvénnyel megtaláljuk a pontos szövegegyezéssel rendelkező elemet az alábbiak szerint. Esetünkben a „UserID” szövegű elemet találjuk.
Xpath=//td[text()='UserID']
XPath tengely módszerek
Ezeket az XPath tengelymódszereket az összetett vagy dinamikus elemek megtalálására használják. Az alábbiakban néhány ilyen módszert fogunk látni.
Az XPath tengelyek módszerének bemutatásához a Guru99 bank bemutató oldalát fogjuk használni.
1) Következő
Kijelöli az összes elemet az aktuális csomópont dokumentumában ( ) [ A felhasználói azonosító beviteli mezője az aktuális csomópont] az alábbi képernyőn látható módon.
Xpath=//*[@type='text']//following::input
3 „bemeneti” csomópont illeszkedik a „követő” tengely – jelszó, bejelentkezés és visszaállítás gomb használatával. Ha egy adott elemre szeretne összpontosítani, használhatja az alábbi XPath módszert:
Xpath=//*[@type='text']//following::input[1]
Módosíthatja az XPath-ot a követelményeknek megfelelően, ha [1],[2]……………………… stb.
Ha az '1'-es bevitelt adja meg, az alábbi képernyőkép megtalálja azt a csomópontot, amely a 'Jelszó' beviteli mező elem.
2) Ős
Az őstengely kiválasztja az aktuális csomópont összes őselemét (nagyszülő, szülő stb.), ahogy az alábbi képernyőn látható.
Az alábbi kifejezésben az aktuális csomópont ősei elemét találjuk („VÁLLALATI TESZTELÉS” csomópont).
Xpath=//*[text()='Enterprise Testing']//ancestor::div
13 „div” csomópont illeszkedik az „ős” tengely használatával. Ha egy adott elemre szeretne összpontosítani, használhatja az alábbi XPath-ot, ahol az 1-es, 2-es számokat igény szerint módosíthatja:
Xpath=//*[text()='Enterprise Testing']//ancestor::div[1]
Módosíthatja az XPath-ot a követelményeknek megfelelően, ha [1], [2]…………………………… stb.
3) Gyermek
Kijelöli az aktuális csomópont összes gyermek elemét (Java) az alábbi képernyőn látható módon.
Xpath=//*[@id='java_technologies']//child::li
71 „li” csomópont illeszkedik a „gyermek” tengely használatával. Ha egy adott elemre szeretne összpontosítani, használja az alábbi xpath-t:
Xpath=//*[@id='java_technologies']//child::li[1]
Módosíthatja az xpath-ot a követelményeknek megfelelően az [1],[2]……………………………………… és így tovább megadásával.
4) Előző
Válassza ki az összes csomópontot, amely az aktuális csomópont előtt van, az alábbi képernyőn látható módon.
Az alábbi kifejezésben az összes beviteli elemet azonosítja a „BEJELENTKEZÉS” gomb előtt Felhasználói azonosító és a jelszó bemeneti elem.
Xpath=//*[@type='submit']//preceding::input
2 „bemeneti” csomópont illeszkedik az „előző” tengely használatával. Ha egy adott elemre szeretne összpontosítani, használja az alábbi XPath-ot:
Xpath=//*[@type='submit']//preceding::input[1]
Módosíthatja az xpath-ot a követelményeknek megfelelően az [1],[2]……………………………………… és így tovább megadásával.
5) Következő testvér
Válassza ki a kontextus csomópont következő testvéreit. A testvérek az aktuális csomópont ugyanazon a szintjén vannak, mint az alábbi képernyőn látható. Megkeresi az elemet az aktuális csomópont után.
xpath=//*[@type='submit']//following-sibling::input
Egy bemeneti csomópont illeszkedése a „követő testvér” tengely használatával.
6) Szülő
Az alábbi képernyőn látható módon kiválasztja az aktuális csomópont szülőjét.
Xpath=//*[@id='rt-feature']//parent::div
65 „div” csomópont illeszkedik a „szülő” tengely használatával. Ha egy adott elemre szeretne összpontosítani, használja az alábbi XPath-ot:
Xpath=//*[@id='rt-feature']//parent::div[1]
Módosíthatja az XPath-ot a követelményeknek megfelelően, ha [1],[2]……………………… stb.
7) Önmagam
Kiválasztja az aktuális csomópontot, vagy az „én” azt jelenti, hogy magát a csomópontot jelzi az alábbi képernyőn látható módon.
Egy csomópont illesztése „saját” tengely használatával. Mindig csak egy csomópontot talál, mivel az önelemet képvisel.
Xpath =//*[@type='password']//self::input
8) Leszármazott
Az alábbi képernyőn látható módon kiválasztja az aktuális csomópont leszármazottait.
Az alábbi kifejezésben azonosítja az összes elem leszármazottját az aktuális elemhez ('Main body surround' frame element), ami azt jelenti, hogy a csomópont alatt van (gyermek csomópont, unoka csomópont stb.).
Xpath=//*[@id='rt-feature']//descendant::a
12 „link” csomópont illeszkedik a „származó” tengely használatával. Ha egy adott elemre szeretne összpontosítani, használja az alábbi XPath-ot:
Xpath=//*[@id='rt-feature']//descendant::a[1]
Módosíthatja az XPath-ot a követelményeknek megfelelően, ha [1],[2]……………………… stb.
Összegzésként
Az XPath-nak szüksége van egy elem megtalálásához a weboldalon, hogy műveletet hajtson végre az adott elemen.
- Kétféle szelén XPath létezik:
- Abszolút XPath
- Relatív XPath
- Az XPath tengelyek olyan dinamikus elemek keresésére használt módszerek, amelyeket egyébként nem lehetne megtalálni normál XPath módszerrel
- XPath kifejezés jelölje ki a csomópontokat vagy a csomópontok listáját olyan attribútumok alapján, mint az ID , Név, Osztálynév stb. az XML dokumentumból.
Ellenőrizze még:- Selenium Oktatóanyag kezdőknek: Tanulja meg a WebDrivert 7 nap alatt