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 kontra Znajdź elementy
Znajdź element Vs Znajdź elementy w Selenium
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