FindElements in Selenium – FindElement XPath segítségével
Miért van szüksége az Elem(ek) keresése parancsra?
A weboldallal való interakció megköveteli, hogy a felhasználó megtalálja a webelem helyét. Az Elem keresése parancs egy (egy) webelem egyedi azonosítására szolgál a weboldalon belül. Ezzel szemben az Elemek keresése parancs a webes elemek listájának egyedi azonosítására szolgál a weboldalon. Számos módja van a webelemek egyedi azonosítására a weboldalon belül, például azonosító, név, osztálynév, hivatkozás szövege, részleges hivatkozás szövege, címke neve és XPATH.
FindElement parancs szintaxisa
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium Az Elem keresése parancs paraméterként a By objektumot veszi be, és egy WebElement típusú lista objektumot ad vissza Selenium. Objektum szerint viszont különféle lokátorstratégiákkal használható, mint például az elem keresése azonosító alapján Selenium, Név, Osztálynév, XPATH stb. Az alábbiakban a FindElement parancs szintaxisa látható Selenium web-illesztőprogram.
A lokációs stratégia a következő értékek bármelyike lehet.
- ID
- Selenium elem keresése név szerint
- Osztály név
- Címke neve
- Link szövege
- Részleges hivatkozás szövege
- XPATH
A lokátorérték az az egyedi érték, amelynek segítségével egy webelem azonosítható. A fejlesztők és tesztelők felelőssége, hogy bizonyos tulajdonságok, például azonosító vagy név alapján egyedileg azonosíthatók legyenek a webes elemek.
Példa:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Példa: Elem keresése itt Selenium
A következő alkalmazást bemutató célra használjuk
http://demo.guru99.com/test/ajax.html
Forgatókönyv:
Lépés 1: Nyissa meg az AUT-t
Lépés 2: Keresse meg és kattintson a rádiógombra
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class NameDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver", "D:\\3rdparty\\chrome\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get("http://demo.guru99.com/test/ajax.html"); // Find the radio button for “No” using its ID and click on it driver.findElement(By.id("no")).click(); //Click on Check Button driver.findElement(By.id("buttoncheck")).click(); } }
FindElements parancs szintaxisa
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
FindElements in Selenium parancs paraméterként beveszi a By objektumot, és visszaadja a webes elemek listáját. Üres listát ad vissza, ha az adott lokátorstratégiával és lokátorértékkel nem található elemek. Az alábbiakban az elemek keresése parancs szintaxisa látható.
Példa:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Példa: Elemek keresése itt Selenium
Forgatókönyv:
Lépés 1: Nyissa meg a tesztelés alatt álló alkalmazás URL-jét
Lépés 1: Keresse meg a rádiógombok szövegét, és nyomtassa ki a kimeneti konzolra
package com.sample.stepdefinitions; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class NameDemo { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://demo.guru99.com/test/ajax.html"); List<WebElement> elements = driver.findElements(By.name("name")); System.out.println("Number of elements:" +elements.size()); for (int i=0; i<elements.size();i++){ System.out.println("Radio button text:" + elements.get(i).getAttribute("value")); } } }
Elem keresése Vs elemek keresése
Az alábbiakban bemutatjuk az elem keresése és az elemek keresése parancsok közötti főbb különbségeket.
Keresse meg az elemet | Keresse meg az elemeket |
---|---|
Az első legtöbb webes elemet adja vissza, ha több webelem is található ugyanazzal a lokátorral | A webes elemek listáját adja vissza |
A NoSuchElementException kivételt dobja, ha nincsenek a helymeghatározó stratégiának megfelelő elemek | Üres listát ad vissza, ha nincsenek a helymeghatározó stratégiának megfelelő webelemek |
Elem keresése XPath segítségével csak egy webelemet talál | Olyan elemek gyűjteményét fogja találni, amelyek megfelelnek a lokátor stratégiájának. |
Nem alkalmazható | Minden webelem egy 0-tól kezdődő számmal van indexelve, akárcsak egy tömb |
Összegzésként
- Az Elem keresése parancs azt a webelemet adja vissza, amelyik az első legtöbb elemnek felel meg a weboldalon belül.
- Az Elemek keresése parancs a feltételeknek megfelelő webes elemek listáját adja vissza.
- Keresse meg az elemet XPath segítségével Selenium parancs a NoSuchElementException parancsot dobja, ha nem találja a feltételeknek megfelelő elemet.
- Az Elemek keresése parancs üres listát ad vissza Selenium ha nincsenek a kritériumoknak megfelelő elemek