Znajdź Element i FindElements według XPath w Selenium WebDriver

Spisie treści:

Anonim

Dlaczego potrzebujesz polecenia Znajdź element / elementy?

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 WWW na stronie WWW. 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 ścieżka XPATH.

Składnia polecenia FindElement:

Polecenie Selenium Find Element przyjmuje obiekt By jako parametr i zwraca obiekt typu lista typu WebElement w Selenium. Obiekt z kolei może być używany z różnymi strategiami lokalizatora, takimi jak znajdź element według ID Selenium, Name, Class Name, XPATH itp. Poniżej znajduje się składnia polecenia FindElement w sterowniku sieciowym Selenium.

WebElement elementName = driver.findElement (By.LocatorStrategy ("LocatorValue"));

Strategia lokalizatora może mieć dowolną z następujących wartości.

  • ID
  • Znajdź element selenu według nazwy
  • Nazwa klasy
  • Nazwa znacznika
  • Tekst linku
  • Częściowy tekst linku
  • XPATH

Wartość lokalizatora to unikalna wartość, za pomocą której można zidentyfikować element sieciowy. Do obowiązków programistów i testerów należy upewnienie się, że elementy internetowe są jednoznacznie identyfikowalne za pomocą określonych właściwości, takich jak identyfikator lub nazwa.

Przykład:

WebElement loginLink = driver.findElement (By.linkText ("Login"));

Składnia polecenia FindElements:

Polecenie FindElements in Selenium przyjmuje obiekt By jako parametr i zwraca listę elementów WWW. Zwraca pustą listę, jeśli nie znaleziono żadnych elementów przy użyciu podanej strategii lokalizatora i wartości lokalizatora. Poniżej znajduje się składnia polecenia znajdź elementy.

List  elementName = driver.findElements (By.LocatorStrategy ("LocatorValue"));

Przykład:

List  listOfElements = driver.findElements (By.xpath ("// div"));

Znajdź element Vs Znajdź elementy

Poniżej znajdują się główne różnice między poleceniami znajdź element i znajdź elementy.

Znajdź element Vs Znajdź elementy w Selenium
Znajdź element Znajdź elementy
Zwraca pierwszy największy element WWW, jeśli znaleziono wiele elementów WWW z tym samym lokalizatorem Zwraca listę elementów WWW
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 według XPath spowoduje znalezienie tylko jednego elementu internetowego Znajdzie zbiór elementów pasujących do strategii lokalizatora.
Nie dotyczy Każdy element sieci Web jest indeksowany liczbą zaczynającą się od 0, podobnie jak tablica

Przykład: Jak używać polecenia Znajdź element

Następująca aplikacja służy do celów demonstracyjnych

http://demo.guru99.com/test/ajax.html

Scenariusz:

1. Otwórz AUT

2. Znajdź i kliknij przycisk opcji

pakiet 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 Automatycznie wygenerowany kod pośredniczący metodySystem.setProperty ("webdriver.chrome.driver", "D: \\ 3rdparty \\ chrome \\ chromedriver.exe");Sterownik WebDriver = nowy ChromeDriver ();driver.manage (). window (). maximize ();driver.get („http://demo.guru99.com/test/ajax.html”);// Znajdź przycisk opcji „Nie” za pomocą jego identyfikatora i kliknij godriver.findElement (By.id ("nie")). click ();// Kliknij przycisk Sprawdźdriver.findElement (By.id ("buttoncheck")). click ();}}

Przykład: Jak używać polecenia Znajdź elementy

Scenariusz:

1. Otwórz adres URL testowanej aplikacji

2. Znajdź tekst przycisków opcji i wydrukuj go na konsoli wyjściowej

pakiet 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");Sterownik WebDriver = nowy ChromeDriver ();driver.get („http://demo.guru99.com/test/ajax.html”);List  elements = driver.findElements (By.name ("name"));System.out.println ("Liczba elementów: + elements.size ());for (int i = 0; i 

Podsumowanie:

  • Polecenie Znajdź element zwraca element sieciowy, który pasuje do pierwszego największego elementu na stronie internetowej.
  • Polecenie Znajdź elementy zwraca listę elementów WWW, które pasują do kryteriów.
  • Polecenie Znajdź element według XPath w selenium generuje wyjątek NoSuchElementException, jeśli nie znajdzie elementu pasującego do kryteriów.
  • Polecenie Znajdź elementy zwraca pustą listę w Selenium, jeśli nie ma elementów pasujących do kryteriów