A Selenium automatizálásában, ha az elemeket nem az általános lokátorok találják meg, mint például id, class, name stb., Akkor az XPath-t használják egy elem megkeresésére a weboldalon.
Ebben az oktatóanyagban megismerhetjük az xpath és a különböző XPath kifejezéseket, hogy megtaláljuk azokat a komplex vagy dinamikus elemeket, amelyek tulajdonságai dinamikusan változnak a frissítés vagy bármely művelet során.
Ebben az XPath oktatóanyagban megtanulja-
- Mi az XPath?
- Az X-út típusai
- Abszolút XPath
- Relatív XPath
- Alap XPath
- Tartalmaz ()
- Az OR & AND használatával
- Start-with funkcióval
- Szöveg()
- XPath tengely módszerek
- Következő
- Ős
- Gyermek
- Megelőző
- Követő-testvér
- Szülő
- Maga
- Leszármazott
Mi az XPath a szelénben?
Az Selathium XPath egy XML elérési út, amelyet az oldal HTML-struktúráján keresztül lehet navigálni. Ez egy szintaxis vagy nyelv, amellyel bármely elem megtalálható a weboldalon XML elérési út kifejezés használatával. Az XPath HTML és XML dokumentumokhoz egyaránt használható arra, hogy a HTML DOM struktúra segítségével megtalálja a weboldal bármely elemének helyét.
Az XPath szelén alapformátumát az alábbiakban egy képernyőfotóval magyarázzuk.
Az XPath alapformátuma
Szintaxis az XPath szelénhez:
Az XPath tartalmazza a weboldalon található elem elérési útját. Az XPath létrehozásának szokásos XPath szintaxisa az.
Xpath = // tagname [@ attribute = 'value']
- //: Az aktuális csomópont kiválasztása.
- Tagname: Az adott csomópont tagname.
- @: Válasszon attribútumot.
- Attribútum: A csomópont attribútum neve.
- Érték: Az attribútum értéke.
A weboldalak elemének pontos megtalálásához különböző típusú lokátorok vannak:
XPath Locators | 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 osztály neve 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 átjáráshoz |
CSS elérési út | A CSS elérési útja 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:
Az elem megkeresésének közvetlen módja, de az abszolút XPath hátránya, hogy ha az elem útvonalán bármilyen változás történik, akkor az XPath kudarcot vall.
Az XPath legfontosabb jellemzője, hogy az egyetlen előre perjel (/) -nel kezdődik, ami azt jelenti, hogy kiválaszthatja az elemet a gyökércsomópontból.
Az alábbiakban bemutatjuk az alábbi képernyőn látható elem abszolút xpath kifejezését.
MEGJEGYZÉS: A következő XPath gyakorlatot ezen a http://demo.guru99.com/test/selenium-xpath.html oldalon gyakorolhatja.
Kattintson ide, 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]
Abszolút XPath
Relatív Xpath:
A relatív Xpath a HTML DOM struktúra közepétől indul. Kettős elővágással (//) kezdődik. Kereshet elemeket a weboldal bármely pontján, ami azt jelenti, hogy nem kell hosszú xpath-t írni, és a HTML DOM struktúra közepétől indulhat. A relatív Xpath-ot mindig előnyben részesítjük, mivel ez nem teljes útvonal a gyökérelemtől.
Az alábbiakban bemutatjuk az ugyanazon elem relatív XPath kifejezésének példáját, amely az alábbi képernyőn látható. Ez az a közös formátum, amelyet az elem megkeresésére használ az XPath.
Kattintson ide, ha a videó nem érhető el
Relatív XPath: // div [@ class = 'featured-box cloumnsize1'] // h4 [1] // b [1]
Relatív XPath
Mik azok az XPath tengelyek.
Az XPath tengelyek különböző csomópontokat keresnek az XML dokumentumban az aktuális kontextus csomópontoktól. Az XPath tengelyek a dinamikus elemek megtalálásához használt módszerek, amelyek egyébként nem lehetségesek a normál XPath módszerrel, amelynek nincs azonosítója, osztályneve, neve stb.
Axes módszereket használnak azoknak az elemeknek a megtalálásához, amelyek frissítéskor vagy bármilyen más műveletnél dinamikusan változnak. Kevés olyan tengelyes módszer létezik, amelyet a Selenium Webdriver általában használ, például gyermek, szülő, ős, testvér, megelőző, én stb.
Az XPath kezelése összetett és dinamikus elemek kezelése a szelénben
1) Alap XPath:
Az XPath kifejezés az alábbiakban bemutatott módon válassza ki a csomópontokat vagy a csomópontok listáját az olyan attribútumok alapján, mint az ID, a Név, az Osztálynév stb.
Xpath = // input [@ name = 'uid']
Itt van egy link a http://demo.guru99.com/test/selenium-xpath.html oldal eléréséhez.
Alap XPath
Néhány további alapvető xpath kifejezés:
Xpath = // bevitel [@ type = 'text']Xpath = // címke [@ id = 'message23']Xpath = // input [@ value = 'RESET']Xpath = // * [@ class = 'barone']Xpath = // a [@ href = 'http: //demo.guru99.com/']Xpath = //img[@src='//cdn.guru99.com/images/home/java.png.webp ']
2) Tartalmaz ():
A Contains () az XPath kifejezésben használt módszer. Akkor használják, ha bármely attribútum értéke dinamikusan változik, például a bejelentkezési adatok.
A tartalmaz funkció képes megtalálni az elemet részleges szöveggel, amint az az XPath példában látható.
Ebben a példában az elemet csak az attribútum részleges szöveges értékének felhasználásával próbáltuk azonosítani. Az alábbi XPath kifejezésben a beküldés gomb helyett a „sub” részértéket használjuk. Megfigyelhető, hogy az elem sikeresen megtalálható.
A „Típus” teljes értéke „beküldés”, de csak a „rész” részértéket használja.
Xpath = // * [tartalmazza (@ type, 'sub')]
A „név” teljes értéke „btnLogin”, de csak a „btn” részértéket használja.
Xpath = // * [tartalmazza (@ név, 'btn')]
A fenti kifejezésben a „name” attribútumot, a „btn” pedig részértéket vettük, amint az az alábbi képernyőképen látható. Ez 2 elemet (LOGIN & RESET) talál, mivel a "name" attribútumuk "btn" -nel 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 a 'name' attribútuma 'message' -vel kezdődik.
Xpath = // * [tartalmazza (@ id, 'üzenet')]
Az alábbi kifejezésben a link "szövegét" vettük attribútumnak, az "itt" -t pedig részértéknek vettük, amint az az alábbi képernyőképen látható. Ez megtalálja a linket („itt”), mivel megjeleníti az „itt” szöveget.
Xpath = // * [tartalmazza (text (), 'itt')]Xpath = // * [tartalmazza (@ href, 'guru99.com')]
3) Az OR & AND használata:
Az OR kifejezésben két feltételt használnak, legyen az 1. feltétel VAGY a 2. feltétel igaz. Akkor is alkalmazható, ha valamelyik feltétel igaz, vagy 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' vagy @ name = 'btnReset']
Mindkét elem kiemelése "LOGIN" elemként, amelynek attribútuma "type", és "RESET" elemként, amelynek attribútuma "name".
Az AND kifejezésben két feltételt használnak, mindkét feltételnek igaznak kell lennie az elem megtalálásához. Nem találja az elemet, ha valamelyik feltétel hamis.
Xpath = // input [@ type = 'submit' és @ name = 'btnLogin']
Az alábbi kifejezésben emelje ki a „LOGIN” elemet, mivel mind a „type”, mind a „name” attribútummal rendelkezik.
4) Az Xpath Start-with
Az XPath starts-with () egy olyan funkció, amely arra szolgál, hogy megtalálja azt a webelementet, amelynek attribútumértéke frissítéskor vagy a weboldal egyéb dinamikus műveletei miatt megváltozik. Ebben a módszerben az attribútum kezdő szövegét egyeztetjük, hogy megtaláljuk azt az elemet, amelynek attribútumértéke dinamikusan változik. Találhat olyan elemeket is, 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:
Id = "message12"
Id = "message345"
Id = "message8769"
és így tovább ... de a kezdeti szöveg ugyanaz. Ebben az esetben a Start-with kifejezést használjuk.
Az alábbi kifejezésben két elem van, amelynek azonosítója "üzenet" kezdetű (azaz "A felhasználói azonosító nem lehet üres" és "A jelszó nem lehet üres"). Az alábbi példában az XPath megtalálja azokat az elemeket, amelyeknek „azonosítója” „üzenettel” kezdődik.
Xpath = // címke [kezdődik-val (@ id, 'üzenet')]
5) XPath Text () függvény
Az XPath text () függvény a szelén web meghajtó beépített függvénye, amely az elemek megkeresésére szolgál egy web elem szövege alapján. Segít megtalálni a pontos szövegelemeket, és megtalálja az elemeket a szövegcsomópontok halmazában. A keresendő elemeknek karakterlánc formában kell lenniük.
Ebben a kifejezésben, szövegfunkcióval, megtaláljuk a pontos szövegegyezésű elemet az alábbiak szerint. Esetünkben a "UserID" szövegű elemet találjuk meg.
Xpath = // td [text () = 'UserID']
6) XPath tengely módszerek:
Ezeket az XPath tengely módszereket használják az összetett vagy dinamikus elemek megkeresésére. Az alábbiakban e módszerek közül néhányat láthatunk.
Ezen XPath tengelyes módszer bemutatásához a Guru99 bank bemutató webhelyét fogjuk használni.
a) Következő:
Kiválasztja az összes elemet az aktuális csomópont dokumentumában () [A UserID beviteli mező az aktuális csomópont] az alábbi képernyőn látható módon.
Xpath = // * [@ type = 'text'] // a :: bevitel után
Három "bemeneti" csomópont van, amelyek megfelelnek a "követõ" axis jelszónak, a bejelentkezés és a visszaállítás gombra. Ha valamelyik elemre kíván koncentrálni, akkor az alábbi XPath módszert használhatja:
Xpath = // * [@ type = 'text'] // következő :: bevitel [1]
Megváltoztathatja az XPath-t a követelményeknek megfelelően az [1], [2] betűkkel
… stb.Ha a bemenet értéke „1”, akkor az alábbi képernyőképen megtalálja azt a csomópontot, amely a „Jelszó” beviteli mező eleme.
b) Ős:
Az ős tengely kiválasztja az aktuális csomópont összes ős elemét (nagyszülő, szülő stb.), Az alábbi képernyőn látható módon.
Az alábbi kifejezésben az aktuális csomópont őseinek elemét találjuk ("ENTERPRISE TESTING" csomópont).
Xpath = // * [text () = 'Vállalati tesztelés'] // ős :: div
13 "div" csomópont illeszkedik az "ős" tengely használatával. Ha valamelyik elemre szeretne összpontosítani, akkor használhatja az alábbi XPath-t, ahol megváltoztatja az 1, 2 számot a követelményeinek megfelelően:
Xpath = // * [text () = 'Vállalati tesztelés'] // ős: :: div [1]
Megváltoztathatja az XPath-t a követelményeknek megfelelően az [1], [2] betűkkel
… stb.c) Gyermek:
Kiválasztja az aktuális csomópont (Java) összes gyermekelemét az alábbi képernyőn látható módon.
Xpath = // * [@ id = 'java_technologies'] // gyermek :: li
71 "li" csomópont illeszkedik a "gyermek" tengely használatával. Ha valamelyik elemre kíván összpontosítani, használhatja az alábbi xpath parancsot:
Xpath = // * [@ id = 'java_technologies'] // gyermek :: li [1]
Megváltoztathatja az xpath-ot a követelménynek megfelelően az [1], [2] betűkkel
… stb.d) Előző:
Válassza ki az összes csomópontot, amely az aktuális csomópont elé kerül, az alábbi képernyőn látható módon.
Az alábbi kifejezésben azonosítja a "LOGIN" gomb előtti összes beviteli elemet, amely Userid és jelszó beviteli elem.
Xpath = // * [@ type = 'submit'] // megelőző :: input
Két "bemeneti" csomópont illeszkedik az "előző" tengely használatával. Ha valamelyik elemre kíván koncentrálni, akkor az alábbi XPath-t használhatja:
Xpath = // * [@ type = 'submit'] // megelőző :: input [1]
Megváltoztathatja az xpath-ot a követelménynek megfelelően az [1], [2] betűkkel
… stb.e) Követő testvér:
Válassza ki a kontextuscsomópont következő testvéreit. A testvérek az aktuális csomópont szintjén vannak, az alábbi képernyőn látható módon. Megtalálja az elemet az aktuális csomópont után.
xpath = // * [@ type = 'submit'] // követő-testvér :: bevitel
Egy bemeneti csomópont illeszkedik a "követő-testvér" tengely használatával.
f) 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'] // szülő :: div
65 "div" csomópont illeszkedik a "szülő" tengely használatával. Ha valamelyik elemre kíván koncentrálni, akkor az alábbi XPath-t használhatja:
Xpath = // * [@ id = 'rt-feature'] // szülő :: div [1]
Megváltoztathatja az XPath-t a követelményeknek megfelelően az [1], [2] betűkkel
… stb.g) Ön:
Az aktuális csomópont kiválasztása vagy az „én” azt jelenti, hogy magát a csomópontot jelzi, amint az az alábbi képernyőn látható.
Egy csomópont egyeztetése az "én" tengely használatával. Mindig csak egy csomópontot talál, mivel az önelemet képvisel.
Xpath = // * [@ type = 'password'] // self :: input
h) Leszármazott:
Kiválasztja az aktuális csomópont leszármazottait az alábbi képernyőn látható módon.Az alábbi kifejezésben azonosítja az aktuális elem összes leszármazottját ('Fő test körüli' keretelem), ami lefelé jelenti a csomópont alatt (gyermekcsomópont, unoka csomópont stb.).
Xpath = // * [@ id = 'rt-feature'] // leszármazott :: a
12 "link" csomópont illeszkedik a "leszármazott" tengely használatával. Ha valamelyik elemre kíván koncentrálni, akkor az alábbi XPath-t használhatja:
Xpath = // * [@ id = 'rt-feature'] // leszármazott :: a [1]
Megváltoztathatja az XPath-t a követelményeknek megfelelően az [1], [2] betűkkel
… stb.Összegzés:
Az XPath-nek meg kell találnia egy elemet 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 módszerek a dinamikus elemek megtalálásához, amelyeket egyébként normál XPath módszerrel nem lehet megtalálni
- Az XPath kifejezés csomópontokat vagy csomópontok listáját választja ki az olyan attribútumok alapján, mint az azonosító, a név, az osztálynév stb. Az XML dokumentumból.