Pokud v automatizaci selenu nejsou elementy nalezeny obecnými lokátory, jako je id, třída, název atd., Použije se XPath k vyhledání elementu na webové stránce.
V tomto kurzu se naučíme o xpath a různých výrazech XPath, abychom našli složité nebo dynamické prvky, jejichž atributy se dynamicky mění při aktualizaci nebo při jakékoli operaci.
V tomto kurzu XPath se naučíte-
- Co je XPath?
- Druhy X-cesty
- Absolutní XPath
- Relativní XPath
- Základní XPath
- Obsahuje ()
- Pomocí OR a AND
- Začíná funkcí
- Text()
- Metody os XPath
- Následující
- Předek
- Dítě
- Předcházející
- Následující sourozenec
- Rodič
- Já
- Potomek
Co je XPath v selenu?
XPath in Selenium je cesta XML používaná pro navigaci ve struktuře HTML stránky. Jedná se o syntaxi nebo jazyk pro vyhledání libovolného prvku na webové stránce pomocí výrazu cesty XML. XPath lze použít pro dokumenty HTML i XML k vyhledání umístění libovolného prvku na webové stránce pomocí struktury HTML DOM.
Základní formát XPath v selenu je vysvětlen níže pomocí obrazovky.
Základní formát XPath
Syntaxe pro XPath selen:
XPath obsahuje cestu k prvku umístěnému na webové stránce. Standardní syntaxe XPath pro vytváření XPath je.
Xpath = // název značky [@ atribut = 'hodnota']
- //: Vyberte aktuální uzel.
- Název značky: Název značky konkrétního uzlu.
- @: Vyberte atribut.
- Atribut: Název atributu uzlu.
- Hodnota: Hodnota atributu.
Chcete-li přesně najít prvek na webových stránkách, existují různé typy lokátorů:
Vyhledávače XPath | Najděte různé prvky na webové stránce |
ID | Vyhledání prvku podle ID prvku |
Jméno třídy | Vyhledání prvku podle názvu třídy prvku |
název | Vyhledání prvku podle názvu prvku |
Text odkazu | Vyhledání prvku podle textu odkazu |
XPath | K vyhledání dynamického prvku a procházení mezi různými prvky webové stránky je vyžadován XPath |
Cesta CSS | Cesta CSS také vyhledá prvky bez názvu, třídy nebo ID. |
Druhy X-cesty
Existují dva typy XPath:
1) Absolutní XPath
2) Relativní XPath
Absolutní XPath:
Jedná se o přímý způsob vyhledání prvku, ale nevýhodou absolutního XPath je, že pokud dojde k jakýmkoli změnám v cestě prvku, pak XPath selže.
Klíčovou charakteristikou XPath je, že začíná jednoduchým lomítkem (/), což znamená, že můžete vybrat prvek z kořenového uzlu.
Níže je uveden příklad absolutního výrazu xpath prvku zobrazeného na obrazovce níže.
POZNÁMKA: Následující cvičení XPath si můžete procvičit na tomto http://demo.guru99.com/test/selenium-xpath.html
Pokud video není přístupné, klikněte sem
Absolutní 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]
Absolutní XPath
Relativní Xpath:
Relativní Xpath začíná od středu struktury HTML DOM. Začíná to dvojitým lomítkem (//). Může vyhledávat prvky kdekoli na webové stránce, znamená to, že není nutné psát dlouhou cestu xpath a můžete začít od středu struktury DOM HTML. Relativní Xpath je vždy upřednostňován, protože to není úplná cesta od kořenového prvku.
Níže je uveden příklad relativního výrazu XPath stejného prvku zobrazeného na obrazovce níže. Toto je běžný formát používaný k vyhledání prvku pomocí XPath.
Pokud video není přístupné, klikněte sem
Relativní XPath: // div [@ class = 'featured-box cloumnsize1'] // h4 [1] // b [1]
Relativní XPath
Co jsou osy XPath.
Osy XPath prohledávají různé uzly v dokumentu XML z aktuálního kontextového uzlu. Osy XPath jsou metody používané k hledání dynamických prvků, které jinak není možné běžnou metodou XPath bez ID, názvu třídy, jména atd.
Metody os se používají k vyhledání těch prvků, které se dynamicky mění při aktualizaci nebo jiných operacích. V selenovém webdriveru se běžně používá několik metod os, jako je dítě, rodič, předek, sourozenec, předcházející, já atd.
Používání XPath Handling komplexních a dynamických prvků v selenu
1) Základní XPath:
Výraz XPath vybere uzly nebo seznam uzlů na základě atributů jako ID, Název, Název třídy atd. Z dokumentu XML, jak je znázorněno níže.
Xpath = // vstup [@ name = 'uid']
Zde je odkaz na přístup na stránku http://demo.guru99.com/test/selenium-xpath.html
Základní XPath
Některé další základní výrazy xpath:
Xpath = // vstup [@ type = 'text']Xpath = // štítek [@ id = 'message23']Xpath = // vstup [@ value = 'RESET']Xpath = // * [@ class = 'barone']Xpath = // a [@ href = 'http: //demo.guru99.com/']Xpath = //img[@src='//cdn.guru99.com/images/home/java.png.webp ']
2) Obsahuje ():
Contains () je metoda použitá ve výrazu XPath. Používá se, když se hodnota libovolného atributu dynamicky mění, například přihlašovací údaje.
Funkce obsahovat má schopnost najít prvek s částečným textem, jak je ukázáno v níže uvedeném příkladu XPath.
V tomto příkladu jsme se pokusili identifikovat prvek pouze pomocí částečné textové hodnoty atributu. V níže uvedeném výrazu XPath se místo tlačítka Odeslat používá částečná hodnota „sub“. Lze pozorovat, že prvek byl úspěšně nalezen.
Kompletní hodnota typu je „odeslat“, ale pouze s částečnou hodnotou „sub“.
Xpath = // * [obsahuje (@ type, 'sub')]
Kompletní hodnota 'name' je 'btnLogin', ale pouze s částečnou hodnotou 'btn'.
Xpath = // * [obsahuje (@ name, 'btn')]
Ve výše uvedeném výrazu jsme vzali 'name' jako atribut a 'btn' jako částečnou hodnotu, jak je znázorněno na následujícím snímku obrazovky. Najdete 2 prvky (LOGIN & RESET), protože jejich atribut „name“ začíná „btn“.
Podobně v níže uvedeném výrazu jsme vzali 'id' jako atribut a 'zprávu' jako částečnou hodnotu. Najde 2 prvky („ID uživatele nesmí být prázdné“ a „Heslo nesmí být prázdné“), protože jeho atribut „name“ začíná „message“.
Xpath = // * [obsahuje (@ id, 'zpráva')]
V níže uvedeném výrazu jsme vzali „text“ odkazu jako atribut a „zde“ jako částečnou hodnotu, jak je znázorněno na následujícím snímku obrazovky. Toto najde odkaz („zde“), protože zobrazuje text „zde“.
Xpath = // * [obsahuje (text (), 'zde')]Xpath = // * [obsahuje (@ href, 'guru99.com')]
3) Použití OR & AND:
Ve výrazu OR se používají dvě podmínky, ať už má být 1. podmínka NEBO 2. podmínka pravdivá. Je také použitelné, pokud je splněna jedna podmínka nebo možná obojí. Znamená, že při hledání prvku by měla být splněna jedna podmínka.
V níže uvedeném výrazu XPath identifikuje prvky, jejichž jedna nebo obě podmínky jsou pravdivé.
Xpath = // * [@ type = 'submit' nebo @ name = 'btnReset']
Zvýraznění obou prvků jako prvku „LOGIN“ s atributem „type“ a prvku „RESET“ s atributem „name“.
Ve výrazu AND se používají dvě podmínky, obě podmínky by měly být pravdivé, aby se prvek našel. Nelze najít prvek, pokud je některá podmínka nepravdivá.
Xpath = // input [@ type = 'submit' and @ name = 'btnLogin']
V níže uvedeném výrazu je zvýraznění prvku „LOGIN“, protože má atribut „type“ i „name“.
4) Xpath začíná -
XPath starts-with () je funkce používaná k nalezení webového prvku, jehož hodnota atributu se změní při aktualizaci nebo jinými dynamickými operacemi na webové stránce. V této metodě se shoduje počáteční text atributu, aby se našel prvek, jehož hodnota atributu se dynamicky mění. Můžete také najít prvky, jejichž hodnota atributu je statická (nezmění se).
Například -: Předpokládejme, že ID konkrétního prvku se mění dynamicky jako:
Id = "message12"
Id = "message345"
Id = "message8769"
a tak dále ... ale původní text je stejný. V tomto případě použijeme výraz Start-with.
Ve výrazu níže jsou dva prvky s ID začínající „zprávou“ (tj. „User-ID nesmí být prázdné“ a „Heslo nesmí být prázdné“). V níže uvedeném příkladu XPath najde ty prvky, jejichž 'ID' začíná na 'message'.
Xpath = // štítek [začíná-na (@ id, 'zpráva')]
5) Funkce XPath Text ()
Funkce XPath text () je vestavěná funkce selenového webdriveru, která se používá k vyhledání prvků na základě textu webového prvku. Pomáhá najít přesné textové prvky a vyhledá prvky v sadě textových uzlů. Elementy, které mají být umístěny, by měly být ve formě řetězce.
V tomto výrazu s textovou funkcí najdeme prvek s přesnou shodou textu, jak je uvedeno níže. V našem případě najdeme prvek s textem „UserID“.
Xpath = // td [text () = 'ID uživatele']
6) Metody os XPath:
Tyto metody os XPath se používají k nalezení složitých nebo dynamických prvků. Níže uvidíme některé z těchto metod.
Pro ilustraci této metody os XPath použijeme ukázkovou stránku banky Guru99.
a) Sledování:
Vybere všechny prvky v dokumentu aktuálního uzlu () [Vstupní pole UserID je aktuální uzel], jak je znázorněno na následující obrazovce.
Xpath = // * [@ type = 'text'] // následující :: vstup
Existují 3 "vstupní" uzly odpovídající pomocí "následujícího" osového hesla, tlačítka pro přihlášení a reset. Pokud se chcete zaměřit na jakýkoli konkrétní prvek, můžete použít níže uvedenou metodu XPath:
Xpath = // * [@ type = 'text'] // následující :: vstup [1]
XPath můžete změnit podle požadavku vložením [1], [2]
… a tak dále.Se vstupem „1“ najde snímek obrazovky níže uzel, který je prvkem vstupního pole „Heslo“.
b) Předek:
Osa předků vybírá všechny prvky předků (prarodiče, rodiče atd.) Aktuálního uzlu, jak je znázorněno na níže uvedené obrazovce.
V níže uvedeném výrazu nacházíme prvek předků aktuálního uzlu (uzel „ZKOUŠENÍ PODNIKU“).
Xpath = // * [text () = 'Enterprise Testing'] // ancestor :: div
Existuje 13 uzlů „div“ odpovídajících ose „předek“. Pokud se chcete zaměřit na jakýkoli konkrétní prvek, můžete použít následující XPath, kde změníte číslo 1, 2 podle vašeho požadavku:
Xpath = // * [text () = 'Enterprise Testing'] // předek :: div [1]
XPath můžete změnit podle požadavku vložením [1], [2]
… a tak dále.c) Dítě:
Vybere všechny podřízené prvky aktuálního uzlu (Java), jak je znázorněno na níže uvedené obrazovce.
Xpath = // * [@ id = 'java_technologies'] // child :: li
Existuje 71 uzlů „li“ odpovídajících pomocí „podřízené“ osy. Pokud se chcete zaměřit na jakýkoli konkrétní prvek, můžete použít následující cestu xpath:
Xpath = // * [@ id = 'java_technologies'] // child :: li [1]
Xpath můžete změnit podle požadavku vložením [1], [2]
… a tak dále.d) Předchozí:
Vyberte všechny uzly, které přicházejí před aktuální uzel, jak je znázorněno na níže uvedené obrazovce.
V níže uvedeném výrazu identifikuje všechny vstupní prvky před tlačítkem „PŘIHLÁŠENÍ“, což je prvek Userid a heslo .
Xpath = // * [@ type = 'submit'] // předchozí :: vstup
Existují 2 "vstupní" uzly odpovídající pomocí "předcházející" osy. Pokud se chcete zaměřit na konkrétní prvek, můžete použít následující XPath:
Xpath = // * [@ type = 'submit'] // předchozí :: vstup [1]
Xpath můžete změnit podle požadavku vložením [1], [2]
… a tak dále.e) Následující sourozenec:
Vyberte následující sourozence kontextového uzlu. Sourozenci jsou na stejné úrovni aktuálního uzlu, jak je znázorněno na níže uvedené obrazovce. Najde prvek za aktuálním uzlem.
xpath = // * [@ type = 'submit'] // následující-sourozenec :: vstup
Shoda jednoho vstupního uzlu pomocí osy „následného sourozence“.
f) Rodič:
Vybere nadřazený prvek aktuálního uzlu, jak je znázorněno na níže uvedené obrazovce.
Xpath = // * [@ id = 'rt-feature'] // parent :: div
Existuje 65 uzlů "div" odpovídajících pomocí "rodičovské" osy. Pokud se chcete zaměřit na konkrétní prvek, můžete použít následující XPath:
Xpath = // * [@ id = 'rt-feature'] // parent :: div [1]
XPath můžete změnit podle požadavku vložením [1], [2]
… a tak dále.g) Já:
Vybere aktuální uzel nebo „self“ znamená, že označuje samotný uzel, jak je znázorněno na níže uvedené obrazovce.
Shoda jednoho uzlu pomocí osy „já“. Vždy najde pouze jeden uzel, protože představuje vlastní prvek.
Xpath = // * [@ type = 'heslo'] // self :: vstup
h) Potomek:
Vybere potomky aktuálního uzlu, jak je znázorněno na níže uvedené obrazovce.V níže uvedeném výrazu identifikuje všechny potomky prvku k aktuálnímu prvku (prvek rámu „Hlavní tělo obklopuje“), což znamená dole pod uzlem (podřízený uzel, uzel vnouče atd.).
Xpath = // * [@ id = 'rt-feature'] // potomek :: a
K dispozici je 12 uzlů „odkazu“ odpovídajících pomocí osy „potomka“. Pokud se chcete zaměřit na konkrétní prvek, můžete použít následující XPath:
Xpath = // * [@ id = 'rt-feature'] // potomek :: a [1]
XPath můžete změnit podle požadavku vložením [1], [2]
… a tak dále.Souhrn:
XPath je vyžadován k vyhledání prvku na webové stránce, aby bylo možné provést operaci s tímto konkrétním prvkem.
- Existují dva typy XPath selenu:
- Absolutní XPath
- Relativní XPath
- Osy XPath jsou metody používané k hledání dynamických prvků, které by jinak nebylo možné najít běžnou metodou XPath
- Výraz XPath vyberte z dokumentu XML uzly nebo seznam uzlů na základě atributů, jako je ID, Název, Název třídy atd.