Vstup XPath Selenium: Tutorial

V čem je XPath Selenium?

Vstup XPath Selenium je cesta XML používaná pro navigaci ve struktuře HTML stránky. Je to syntaxe nebo jazyk pro nalezení jakéhokoli prvku na webové stránce pomocí výrazu cesty XML. XPath lze použít pro dokumenty HTML i XML k nalezení umístění libovolného prvku na webové stránce pomocí struktury HTML DOM.

In Selenium automatizace, pokud nejsou prvky nalezeny obecnými lokátory, jako je id, třída, jméno atd., pak se k nalezení prvku na webové stránce použije XPath.

V tomto tutoriálu se seznámíme s výrazem Xpath a různými výrazy XPath, abychom našli komplexní nebo dynamické prvky, jejichž atributy se dynamicky mění při obnově nebo jakýchkoli operacích.

Syntaxe XPath

XPath obsahuje cestu prvku umístěného na webové stránce. Standardní syntaxe XPath pro vytváření XPath je.

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

Základní formát XPath v selenu je vysvětlen níže pomocí snímku obrazovky.

Syntaxe XPath
Základní formát XPath
  • //: Vyberte aktuální uzel.
  • Název štítku: Tagname konkrétního uzlu.
  • @: Vyberte atribut.
  • Atribut: Název atributu uzlu.
  • Hodnota: Hodnota atributu.

Pro přesné nalezení prvku 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 Chcete-li najít prvek podle ID prvku
Jméno třídy Chcete-li najít prvek podle názvu třídy prvku
Jméno Vyhledání prvku podle názvu prvku
Text odkazu Vyhledání prvku podle textu odkazu
XPath XPath vyžadovaná pro nalezení dynamického prvku a procházení mezi různými prvky webové stránky
Cesta CSS Cesta CSS také vyhledá prvky, které nemají název, třídu nebo ID.

Typy X-cesty

Existují dva typy XPath:

1) Absolutní XPath

2) Relativní XPath

Absolutní XPath

Je to přímá cesta k nalezení prvku, ale nevýhodou absolutní XPath je, že pokud dojde k nějakým změnám v cestě prvku, XPath selže.

Klíčovou vlastností XPath je, že začíná jední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: Na tomto si můžete procvičit následující cvičení XPath https://demo.guru99.com/test/selenium-xpath.html

klikněte zde pokud video není přístupné

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
Absolutní XPath

Relativní Xpath

Relativní Xpath začíná uprostřed struktury HTML DOM. Začíná dvojitým lomítkem (//). Dokáže vyhledávat prvky kdekoli na webové stránce, není třeba psát dlouhou cestu xpath a můžete začít od středu struktury HTML DOM. Relativní Xpath je vždy preferována, protože to není úplná cesta z 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 nalezení prvku XPath.

klikněte zde pokud video není přístupné

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

Relativní XPath
Relativní XPath

Co jsou osy XPath.

Osy XPath prohledávají různé uzly v dokumentu XML z aktuálního kontextového uzlu. XPath osy jsou metody používané k nalezení dynamických prvků, které jinak nejsou možné běžnou metodou XPath bez ID, názvu třídy, názvu atd. XPath v Selenium zahrnuje několik metod, jako jsou Obsahuje, AND, Absolutní XPath a Relativní XPath k identifikaci a lokalizaci dynamických prvků na základě různých atributů a podmínek.

Metody os se používají k nalezení těch prvků, které se dynamicky mění při obnově nebo jakékoli jiné operaci. Existuje několik běžně používaných osových metod Selenium Webdriver jako dítě, rodič, předek, sourozenec, předchozí, já atd.

Jak zapsat Dynamic XPath In Selenium webový ovladač

1) Základní XPath

XPath výraz vyberte uzly nebo seznam uzlů na základě atributů jako ID, jméno, název třídyatd. z dokumentu XML, jak je znázorněno níže.

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

Zde je odkaz pro přístup na stránku https://demo.guru99.com/test/selenium-xpath.html

Základní XPath
Základní XPath

Některé další základní xpath výrazy:

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) Obsahuje()

Contains() je metoda používaná 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 znázorněno v příkladu XPath níže.

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 namísto tlačítka Odeslat použije částečná hodnota 'sub'. Lze pozorovat, že prvek je úspěšně nalezen.

Úplná hodnota 'Type' je 'submit', ale používá se pouze částečná hodnota 'sub'.

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

Úplná hodnota 'name' je 'btnLogin', ale používá se pouze částečná hodnota 'btn'.

Xpath=//*[contains(@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íže uvedeném snímku obrazovky. Tím se najdou 2 prvky (LOGIN & RESET), protože jejich atribut 'name' začíná na 'btn'.

Obsahuje()

Podobně jsme v níže uvedeném výrazu vzali 'id' jako atribut a 'message' jako částečnou hodnotu. Tím se najdou 2 prvky ('ID uživatele nesmí být prázdné' & 'Heslo nesmí být prázdné'), protože jeho atribut 'id' začíná na 'zpráva'.

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

Obsahuje()

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íže uvedeném snímku obrazovky. Tím se najde odkaz („zde“), protože se zobrazí text „zde“.

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

Obsahuje()

3) Pomocí OR & AND

Ve výrazu OR se používají dvě podmínky, zda má být pravdivá 1. podmínka NEBO 2. podmínka. Platí také, pokud je splněna některá z podmínek nebo možná obě. Znamená to, že pro nalezení prvku by měla být splněna jakákoli podmínka.

V níže uvedeném výrazu XPath identifikuje prvky, jejichž jedna nebo obě podmínky jsou pravdivé.

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

Zvýraznění obou prvků jako prvek „LOGIN“ s atributem „type“ a prvek „RESET“ s atributem „name“.

Pomocí OR & AND

Ve výrazu AND se používají dvě podmínky, obě podmínky by měly být pravdivé, aby se prvek našel. Pokud je některá podmínka nepravdivá, nepodaří se najít prvek.

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

V níže uvedeném výrazu zvýraznění prvku 'LOGIN', protože má atribut 'type' i 'name'.

Pomocí OR & AND

4) Xpath začíná-s

XPath začíná-s() je funkce sloužící k vyhledání webového prvku, jehož hodnota atributu se změní při obnovení nebo jinými dynamickými operacemi na webové stránce. V této metodě se porovnává 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á (nemění se).

Například -: Předpokládejme, že ID konkrétního prvku se dynamicky mění jako:

Id=” zpráva12″

Id=” zpráva345″

Id=” zpráva8769″

a tak dále.. ale počáteční text je stejný. V tomto případě použijeme výraz Start-with.

V níže uvedeném výrazu jsou dva prvky, jejichž ID začíná „zprávou“ (tj. „ID uživatele 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á 'zprávou'.

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

Xpath začíná-s

5) Funkce XPath Text().

Jedno 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 lokalizuje prvky v sadě textových uzlů. Prvky, které mají být umístěny, by měly být ve tvaru řetězce.

V tomto výrazu s textovou funkcí najdeme prvek s přesnou shodou textu, jak je znázorněno níže. V našem případě najdeme prvek s textem „UserID“.

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

Funkce XPath Text().

Metody os XPath

Tyto metody os XPath se používají k nalezení komplexních nebo dynamických prvků. Níže uvidíme některé z těchto metod.

Pro ilustraci této metody os XPath použijeme demo stránku banky Guru99.

1) Sledování

Vybere všechny prvky v dokumentu aktuálního uzlu ( ) [ Vstupní pole ID uživatele je aktuální uzel], jak je znázorněno na obrazovce níže.

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

Následující

Existují 3 „vstupní“ uzly, které se shodují pomocí „následující“ osy – hesla, přihlašovacího a resetovacího tlačítka. Pokud se chcete zaměřit na jakýkoli konkrétní prvek, můžete použít níže uvedenou metodu XPath:

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

XPath můžete změnit podle požadavku zadáním [1],[2]…………a tak dále.

Se vstupem „1“ najde snímek obrazovky níže konkrétní uzel, který je prvkem vstupního pole „Heslo“.

Následující

2) Předek

Osa předka vybere všechny prvky předků (prarodič, rodič atd.) aktuálního uzlu, jak je znázorněno na obrazovce níže.

V níže uvedeném výrazu nacházíme prvek předků aktuálního uzlu (uzel „PODNIKOVÉ TESTOVÁNÍ“).

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

Předek

Existuje 13 uzlů „div“ odpovídajících pomocí osy „předchůdce“. Pokud se chcete zaměřit na jakýkoli konkrétní prvek, můžete použít níže uvedenou cestu XPath, kde změníte číslo 1, 2 podle svého požadavku:

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

XPath můžete změnit podle požadavku zadáním [1], [2]…………a tak dále.

3) Dítě

Vybere všechny podřízené prvky aktuálního uzlu (Java), jak je znázorněno na obrazovce níže.

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

Dítě

Existuje 71 „li“ uzlů odpovídajících pomocí „child“ osy. Pokud se chcete zaměřit na jakýkoli konkrétní prvek, můžete použít níže uvedenou cestu xpath:

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

Xpath můžete změnit podle požadavku zadáním [1],[2]…………a tak dále.

4) Předchozí

Vyberte všechny uzly, které jsou před aktuálním uzlem, jak je znázorněno na obrazovce níže.

V níže uvedeném výrazu identifikuje všechny vstupní prvky před tlačítkem „LOGIN“, tj Uživatelské ID si heslo vstupní prvek.

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

Předchozí

Existují 2 „vstupní“ uzly odpovídající pomocí „předchozí“ osy. Pokud se chcete zaměřit na jakýkoli konkrétní prvek, můžete použít níže uvedenou cestu XPath:

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

Xpath můžete změnit podle požadavku zadáním [1],[2]…………a tak dále.

5) Následný sourozenec

Vyberte následující sourozence kontextového uzlu. Sourozenci jsou na stejné úrovni aktuálního uzlu, jak je znázorněno na obrazovce níže. Najde prvek za aktuálním uzlem.

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

Následující-sourozenec

Jeden vstupní uzel se shoduje pomocí osy „následující sourozenec“.

6) Rodič

Vybere rodiče aktuálního uzlu, jak je znázorněno na obrazovce níže.

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

Rodič

Existuje 65 „div“ uzlů odpovídajících pomocí „rodičovské“ osy. Pokud se chcete zaměřit na jakýkoli konkrétní prvek, můžete použít níže uvedenou cestu XPath:

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

XPath můžete změnit podle požadavku zadáním [1],[2]…………a tak dále.

7) Sebe

Vybírá aktuální uzel nebo 'self' znamená, že označuje samotný uzel, jak je znázorněno na obrazovce níže.

Vlastní

Shoda jednoho uzlu pomocí osy „self“. Vždy najde pouze jeden uzel, protože představuje sebeprvek.

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

8) Potomek

Vybere potomky aktuálního uzlu, jak je znázorněno na obrazovce níže.

V níže uvedeném výrazu identifikuje všechny potomky prvku aktuálního prvku (prvek rámečku 'Hlavní tělo obklopující'), což znamená dole pod uzlem (podřízený uzel , vnukový uzel atd.).

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

potomek

Existuje 12 „spojovacích“ uzlů odpovídajících pomocí „potomkové“ osy. Pokud se chcete zaměřit na jakýkoli konkrétní prvek, můžete použít níže uvedenou cestu XPath:

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

XPath můžete změnit podle požadavku zadáním [1],[2]…………a tak dále.

Shrnutí

XPath je vyžadován k nalezení prvku na webové stránce a provedení operace s tímto konkrétním prvkem.

  • Existují dva typy selenových XPath:
    • Absolutní XPath
    • Relativní XPath
  • XPath Axes jsou metody používané k nalezení dynamických prvků, které jinak nelze najít běžnou metodou XPath
  • Výraz XPath vyberte uzly nebo seznam uzlů na základě atributů jako ID , Název, Název třídy atd. z dokumentu XML .

Zkontrolujte také: - Selenium Výukový program pro začátečníky: Naučte se WebDriver za 7 dní