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 vs najít prvky
Najít prvek vs Najít prvky v Selenium
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