ZnajdźElementy w Selenium – FindElement autorstwa XPath
Dlaczego potrzebujesz polecenia Znajdź element(y)?
Interakcja ze stroną internetową wymaga od użytkownika zlokalizowania elementu internetowego. Polecenie Znajdź element służy do jednoznacznej identyfikacji (jednego) elementu internetowego na stronie internetowej. Natomiast polecenie Znajdź elementy służy do jednoznacznej identyfikacji listy elementów internetowych na stronie internetowej. Istnieje wiele sposobów jednoznacznej identyfikacji elementu internetowego na stronie internetowej, takich jak identyfikator, nazwa, nazwa klasy, tekst łącza, częściowy tekst łącza, nazwa znacznika i XPATH.
Składnia polecenia FindElement
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium Polecenie Znajdź element przyjmuje obiekt By jako parametr i zwraca obiekt typu lista WebElement w Selenium. Z kolei według obiektu można używać z różnymi strategiami lokalizowania, takimi jak wyszukiwanie elementu według identyfikatora Selenium, Nazwa, Nazwa klasy, XPATH itp. Poniżej znajduje się składnia polecenia FindElement w Selenium sterownik sieciowy.
Strategia lokalizatora może przyjąć dowolną z następujących wartości.
- ID
- Selenium znajdź element według nazwy
- Nazwa klasy
- Nazwa znacznika
- link Text
- Częściowy tekst linku
- XPAT
Wartość lokalizatora to unikalna wartość, za pomocą której można zidentyfikować element sieciowy. Obowiązkiem programistów i testerów jest upewnienie się, że elementy internetowe można jednoznacznie zidentyfikować na podstawie określonych właściwości, takich jak identyfikator lub nazwa.
Przykład:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Przykład: Znajdź element w Selenium
Poniższa aplikacja jest używana w celach demonstracyjnych
http://demo.guru99.com/test/ajax.html
Scenariusz:
Krok 1: Otwórz AUT
Krok 2: Znajdź i kliknij przycisk radiowy
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(); } }
Składnia polecenia FindElements
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
ZnajdźElementy w Selenium polecenie przyjmuje parametr Według obiektu i zwraca listę elementów sieciowych. Zwraca pustą listę, jeśli przy podanej strategii lokalizatora i wartości lokalizatora nie znaleziono żadnych elementów. Poniżej znajduje się składnia polecenia Znajdź elementy.
Przykład:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Przykład: Znajdź elementy w Selenium
Scenariusz:
Krok 1: Otwórz adres URL testowanej aplikacji
Krok 1: Znajdź tekst przycisków opcji i wydrukuj go na konsoli wyjściowej
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")); } } }
Znajdź element Vs Znajdź elementy
Poniżej przedstawiono główne różnice między poleceniami znajdź element i znajdź elementy.
Znajdź element | Znajdź elementy |
---|---|
Zwraca pierwszy element sieciowy, jeśli w tym samym lokalizatorze znaleziono wiele elementów sieciowych | Zwraca listę elementów internetowych |
Zgłasza wyjątek NoSuchElementException, jeśli nie ma elementów pasujących do strategii lokalizatora | Zwraca pustą listę, jeśli nie ma elementów internetowych pasujących do strategii lokalizatora |
Znajdź element za pomocą XPath znajdzie tylko jeden element sieciowy | Znajdzie zbiór elementów pasujących do strategii lokalizatora. |
Nie dotyczy | Każdy element WWW jest indeksowany liczbą zaczynającą się od 0, podobnie jak tablica |
Podsumowanie
- Polecenie Znajdź element zwraca element sieciowy, który odpowiada pierwszemu elementowi na stronie internetowej.
- Polecenie Znajdź elementy zwraca listę elementów sieciowych spełniających kryteria.
- Znajdź element według XPath w Selenium polecenie zgłasza wyjątek NoSuchElementException, jeśli nie znajdzie elementu spełniającego kryteria.
- Polecenie Znajdź elementy zwraca pustą listę w Selenium jeśli nie ma elementów spełniających kryteria