FindElements in Selenium – FindElement od XPath
Proč potřebujete příkaz Najít prvky?
Interakce s webovou stránkou vyžaduje, aby uživatel lokalizoval webový prvek. Příkaz Najít prvek se používá k jednoznačné identifikaci (jednoho) webového prvku na webové stránce. Zatímco příkaz Najít prvky se používá k jedinečné identifikaci seznamu webových prvků na webové stránce. Existuje několik způsobů, jak jednoznačně identifikovat webový prvek na webové stránce, jako je ID, název, název třídy, text odkazu, částečný text odkazu, název značky a XPATH.
Syntaxe příkazu FindElement
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium Příkaz Najít prvek převezme objekt By jako parametr a vrátí objekt typu list WebElement in Selenium. Podle objektu lze zase použít s různými strategiemi lokátoru, jako je najít prvek podle ID Selenium, Name, Class Name, XPATH atd. Níže je syntaxe příkazu FindElement in Selenium webový ovladač.
Strategie lokátoru může být jakákoli z následujících hodnot.
- ID
- Selenium najít prvek podle názvu
- Jméno třídy
- Název štítku
- Text odkazu
- Částečný text odkazu
- XPATH
Hodnota lokátoru je jedinečná hodnota, pomocí které lze identifikovat prvek webu. Je odpovědností vývojářů a testerů zajistit, aby prvky webu byly jednoznačně identifikovatelné pomocí určitých vlastností, jako je ID nebo název.
Příklad:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Příklad: Najít prvek v Selenium
Následující aplikace se používá pro demo účely
http://demo.guru99.com/test/ajax.html
Scénář:
Krok 1: Otevřete AUT
Krok 2: Najděte a klikněte na přepínač
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(); } }
Syntaxe příkazu FindElements
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
FindElements in Selenium příkaz převezme podle objektu jako parametr a vrátí seznam webových prvků. Vrátí prázdný seznam, pokud nebyly nalezeny žádné prvky používající danou strategii lokátoru a hodnotu lokátoru. Níže je uvedena syntaxe příkazu find elements.
Příklad:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Příklad: Najít prvky v Selenium
Scénář:
Krok 1: Otevřete adresu URL pro testovanou aplikaci
Krok 1: Najděte text přepínačů a vytiskněte jej na výstupní konzoli
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")); } } }
Najít prvek vs Najít prvky
Níže jsou uvedeny hlavní rozdíly mezi příkazy find element a find elements.
Najít prvek | Najít prvky |
---|---|
Vrátí první webový prvek, pokud bylo nalezeno více webových prvků se stejným lokátorem | Vrátí seznam prvků webu |
Vyvolá výjimku NoSuchElementException, pokud neexistují žádné prvky odpovídající strategii lokátoru | Vrátí prázdný seznam, pokud neexistují žádné webové prvky odpovídající strategii lokátoru |
Najít prvek pomocí XPath najde pouze jeden webový prvek | Najde sbírku prvků, které odpovídají strategii lokátoru. |
Nelze použít | Každý webový prvek je indexován číslem začínajícím od 0 stejně jako pole |
Shrnutí
- Příkaz Najít prvek vrátí webový prvek, který odpovídá prvnímu nejvíce prvku na webové stránce.
- Příkaz Najít prvky vrátí seznam webových prvků, které odpovídají kritériím.
- Najít prvek pomocí XPath v Selenium příkaz vyvolá výjimku NoSuchElementException, pokud nenajde prvek odpovídající kritériím.
- Příkaz Najít prvky vrátí prázdný seznam Selenium pokud neexistují žádné prvky odpovídající kritériím