Az XPath tartalmazza a testvért, az ősöket & Szelén ÉS / VAGY

Tartalomjegyzék:

Anonim

Ha egy egyszerű XPath nem talál bonyolult webelementet a tesztfájlunkhoz, akkor az XPath 1.0 könyvtár függvényeit kell használnunk. Ezen funkciók kombinációjával specifikusabb XPath-t hozhatunk létre. Beszéljünk egy 3 ilyen funkcióról -

  1. Tartalmaz
  2. Testvér
  3. Ős
  4. És VAGY
  5. Szülő
  6. Azzal kezdődik
  7. XPath tengelyek

Tanulmányozzuk őket részletesen -

Mit tartalmaz () a szelénben?

A seleniumban található () a Xpath kifejezésen belüli függvény, amelyet arra használnak, hogy az adott szöveget tartalmazó webes elemeket keresse meg. Az XPath tartalmaz () függvény segítségével az egész weboldalon kivonhatunk minden elemet, amely megfelel az adott szövegértéknek. Tartalmazza az XPath-ban képes megtalálni az elemet részleges szöveggel.

Volt. Itt egy horgonyt keresünk. A szöveg szövege „SAP M”.

"// h4 / a [tartalmazza (text (), 'SAP M')]]"

MEGJEGYZÉS: A következő XPath gyakorlatot ezen a http://demo.guru99.com/test/selenium-xpath.html oldalon gyakorolhatja.

Mi a testvér a szelén webdriverben?

A testvér a szelénben Webdriver egy olyan függvény, amelyet arra használnak, hogy lekérjen egy web elemet, amely testvér a szülő elemnek. Ha a szülő elem ismert, akkor a web elem könnyen megtalálható vagy megtalálható, amely felhasználhatja az Xpath kifejezés testvér attribútumát a szelén web meghajtóban.

Testvér XPath-ban Példa: Itt az 'a' testvér eleme alapján megtaláljuk a 'h4' -t

"// div [@ class = 'canvas- graph'] // a [@href = '/ könyvelés.html'] [i [@ class = 'icon-usd']] / követő-testvér :: h4"

Ős : Ahhoz, hogy a szülő elem alapján megkereshessünk egy elemet, használhatjuk az XPath őse attribútumát.

Megértjük ezt a 3 funkciót egy példával -

Tesztlépések

Megjegyzés: Az oktatóanyag létrehozásának dátuma óta a Guru99 honlapja frissült, ezért inkább tesztek futtatásához használja a bemutató webhelyet

  1. Nyissa meg a http://demo.guru99.com/test/guru99home/ oldalt.
  2. A „Néhány legnépszerűbb tanfolyam” részben keressen meg minden olyan webelementet, amely egy „SELENIUM” szövegű WebElement testvére.
  3. Megtaláljuk az elemet az XPath szöveg tartalmazza, az ős és a testvér funkció használatával.

HASZNÁLAT Tartalom és XPath testvér

import java.util.List;importálja a java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.Test;nyilvános osztály SiblingAndParentInXpath {@Tesztpublic void testSiblingAndParentInXpath () {WebDriver illesztőprogram;String driverPath = "C: \\ geckodriver.exe";System.setProperty ("webdriver.gecko.driver", driverPath);illesztőprogram = new FirefoxDriver ();driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);driver.get ("http://demo.guru99.com/test/guru99home/");// Keresőelem a 'Népszerű tanfolyam' belül, amelyek a 'SELENIUM' vezérlő testvérei. Itt találunk először egy h2-t, amelynek szövege '' Néhány legnépszerűbb tanfolyamunk ', majd áttérünk a szülő elemére, amely a' div ', ezen a div-on belül találunk egy linket, amelynek szövege' SELENIUM ', majd végre megtaláljuk a link összes testvér elemét (' SELENIUM ')Sorolja fel a  dateBox = driver.findElements (By.xpath ("// h2 [tartalmazza (text (), 'Néhány legnépszerűbb tanfolyamunkat')] / szülő :: div // div [// a [text () = 'SELENIUM']] / követő-testvér :: div [@ class = 'rt-rács-2 rt-omega'] "));// Kinyomtatja mindazokat, amelyek a „SELENIUM” nevű elem testvérei a „Népszerű tanfolyamban”for (WebElement webElement: dateBox) {System.out.println (webElement.getText ());}driver.close ();}}

A kimenet a következő lesz:

Őse a szelén webdriverben

Ős a szelénben Webdriver egy olyan funkció, amellyel megkereshető egy adott tag őse a megadott rétegnél. A visszaadandó ős szintje vagy az ős szintje a tag szintjéhez képest kifejezetten meghatározható. Visszaadja az őstől származó hierarchikus lépések számát, és megtalálja a felhasználó által megadandó őst.

Tegyük fel, hogy a „Népszerű tanfolyam” szakasz összes elemét meg kell keresnünk a „SELENIUM” szövegű horgony őse segítségével.

Itt az xpath lekérdezésünk hasonló lesz

"//div[.//a[text()='SELENIUM']]/ancestor::div[@class='rt-grid-2 rt-omega '] / követő-testvér :: div"

Teljes kód

import java.util.List;importálja a java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.Keys;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.Test;public class AncestorInXpath {@Tesztpublic void testAncestorInXpath () {WebDriver illesztőprogram = new FirefoxDriver ();driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);driver.get ("http://demo.guru99.com/test/guru99home/");// Keresés az összes elemre a 'Népszerű tanfolyam' részben// a „SELENIUM” szövegű horgony őse segítségévelSorolja fel a  dateBox = driver.findElements (By.xpath ("// div [.// a [text () = 'SELENIUM']] / ős: div [@ class = 'rt-grid-2 rt- omega '] / követõ-testvér :: div "));// A 'Népszerű tanfolyam' összes, a 'SELENIUM' nevű elem testvérének kinyomtatásafor (WebElement webElement: dateBox) {System.out.println (webElement.getText ());}driver.quit ();}}

A kimenet úgy fog kinézni-

Az AND és az OR használatával

Az AND és OR használatával 2 feltételt adhat az XPath kifejezésünkbe.

  • Az AND esetén mindkét feltételnek igaznak kell lennie, akkor csak az találja meg az elemet.
  • VAGY esetén a 2 feltétel bármelyikének igaznak kell lennie, akkor csak ez találja meg az elemet.

Itt az XPath lekérdezésünk hasonló lesz

Xpath = // * [@ type = 'beküldés' OR @ name = 'btnReset']
Xpath = // input [@ type = 'submit' és @ name = 'btnLogin']

Tesztlépések:

  1. Nyissa meg a http://demo.guru99.com/v1/ webhelyet
  2. A szakaszban a fenti bemutató webhelyet fogja használni az XPath különböző funkcióival rendelkező elemek keresésére.

Az AND és OR, a parent, a start-with és az XPath tengelyeket használó elemet talál

ÉS VAGY Példa

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;AND_OR {nyilvános osztálypublic static void main (String [] érvel) {WebDriver illesztőprogram;WebElement w, x;System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");illesztőprogram = new ChromeDriver ();// Indítsa el az alkalmazástdriver.get ("https://www.guru99.com/");// Keresési elem OR használatával az xpath-banw = driver.findElement (By.xpath ("// * [@ type = 'submit' OR @ name = 'btnReset']"));// Nyomtassa ki az elem szövegétSystem.out.println (w.getText ());// Keresési elem az AND használatával az xpath-banx = driver.findElement (By.xpath ("// bemenet [@ type = 'beküldés' és @ név = 'btnLogin']"));// Nyomtassa ki a keresett elem szövegétSystem.out.println (x.getText ());// Zárja be a böngészőtdriver.quit ();}}

Mi a szülő a szelénben?

A szülő a szelénben egy módszer, amelyet a weboldalon kiválasztott aktuális csomópont szülőcsomópontjának lekérésére használnak. Nagyon hasznos abban az esetben, amikor kiválaszt egy elemet, és meg kell szereznie a szülő elemet az Xpath használatával. Ezt a módszert használják a szülő szülőjének megszerzésére is.

Itt az XPath lekérdezésünk hasonló lesz

Xpath = // * [@ id = 'rt-feature'] // szülő :: div

XPath a Szülő használatával

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;nyilvános osztály Szülő {public static void main (String [] érvel) {WebDriver illesztőprogram;WebElement w;System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");illesztőprogram = new ChromeDriver ();// Indítsa el az alkalmazástdriver.get ("https://www.guru99.com/");// Keresés az elemen a PARENT használatávalw = driver.findElement (By.xpath ("// * [@ id = 'rt-feature'] // szülő :: div"));// Nyomtassa ki a keresett elem szövegétSystem.out.println (w.getText ());// Zárja be a böngészőtdriver.quit ();}}

Kezdődik

A Starts-with funkcióval megtalálhatja azt az elemet, amelynek attribútuma dinamikusan változik frissítéskor vagy más műveleteknél, például kattintás, beküldés stb.

Itt az XPath lekérdezésünk hasonló lesz

Xpath = // címke [kezdődik-val (@ id, 'üzenet')]

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;nyilvános osztály StartsWith {public static void main (String [] érvel) {WebDriver illesztőprogram;WebElement w;System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");illesztőprogram = new ChromeDriver ();// Indítsa el az alkalmazástdriver.get ("https://www.guru99.com/");// Keresés az elemen a starts-with használatávalw = driver.findElement (By.xpath ("// címke [kezdődik -val (@ id, 'üzenet')]"));// Nyomtassa ki a keresett elem szövegétSystem.out.println (w.getText ());// Zárja be a böngészőtdriver.quit ();}}

Xpath tengelyek

Az XPath tengelyek használatával megtalálhatja a dinamikus és nagyon összetett elemeket egy weboldalon. Az XPath tengelyek számos módszert tartalmaznak egy elem megkeresésére. Itt néhány módszert tárgyalunk.

következő : Ez a függvény az adott komponens közvetlen elemét adja vissza.

Itt az XPath lekérdezésünk hasonló lesz

Xpath = // * [@ type = 'text'] // a :: bevitel után

XPath a következő használatával

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;nyilvános osztály követi a következőt:public static void main (String [] érvel) {WebDriver illesztőprogram;WebElement w;System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");illesztőprogram = new ChromeDriver ();// Indítsa el az alkalmazástdriver.get ("https://www.guru99.com/");// Keresés az elemben a Következő módszer használatávalw = driver.findElement (By.xpath ("// * [@ type = 'text'] // következő :: input"));// Nyomtassa ki a keresett elem szövegétSystem.out.println (w.getText ());// Zárja be a böngészőtdriver.quit ();}}

Előző: Ez a függvény visszaadja az adott elem előző elemét.

Itt az XPath lekérdezésünk hasonló lesz

Xpath = // * [@ type = 'submit'] // megelőző :: input

XPath a megelőző használatával

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;nyilvános osztály megelőzve {public static void main (String [] érvel) {WebDriver illesztőprogram;WebElement w;System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");illesztőprogram = new ChromeDriver ();// Indítsa el az alkalmazástdriver.get ("https://www.guru99.com/");// Keresés az elemben az előző módszer használatávalw = driver.findElement (By.xpath ("// * [@ type = 'submit"] // megelőző :: input "));// A keresett elem nyomtatásaSystem.out.println (w.getText ());// Zárja be a böngészőtdriver.quit ();}}

d) leszármazott: Ez a függvény visszaadja az adott elem leszármazott elemét.

Itt az XPath lekérdezésünk hasonló lesz

Xpath = // * [@ id = 'rt-feature'] // leszármazott :: a

XPath a leszármazottal

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;nyilvános osztály leszármazottja {public static void main (String [] érvel) {WebDriver illesztőprogram;WebElement w;System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");illesztőprogram = new ChromeDriver ();// Indítsa el az alkalmazástdriver.get ("https://www.guru99.com/");// Keresse meg az elemet leszármazási módszerrelw = driver.findElement (By.xpath ("// * [@ id = 'rt-feature'] // leszármazott :: a"));// A keresett elem nyomtatásaSystem.out.println (w.getText ());// Zárja be a böngészőtdriver.quit ();}}

Összegzés

  • Vannak olyan esetek, amikor a szokásos XPath-t nem lehet elem megkeresésére használni. Ilyen helyzetben az xpath lekérdezéstől eltérő funkciókra van szükségünk.
  • Van néhány fontos XPath-funkció, például az XPath tartalmaz, szülő, ősök, testvérek követése stb.
  • Ezeknek a függvényeknek a segítségével összetett XPath kifejezéseket hozhat létre.