FindElementer i Selenium – FindElement af XPath

Hvorfor har du brug for kommandoen Find Element(s)?

Interaktion med en webside kræver, at en bruger finder webelementet. Find Element-kommandoen bruges til entydigt at identificere et (et) webelement på websiden. Hvorimod Find Elements-kommandoen bruges til entydigt at identificere listen over webelementer på websiden. Der er flere måder til entydigt at identificere et webelement på websiden, såsom ID, navn, klassenavn, linktekst, delvis linktekst, tagnavn og XPATH.

FindElement kommandosyntaks

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

Selenium Find Element-kommandoen tager By-objektet ind som parameter og returnerer et objekt af typen liste WebElement i Selenium. Efter objekt kan igen bruges med forskellige lokaliseringsstrategier, såsom find element efter ID Selenium, Navn, Klassenavn, XPATH osv. Nedenfor er syntaksen for FindElement-kommandoen i Selenium web driver.

Locator Strategy kan være en af ​​følgende værdier.

  • ID
  • Selenium find element ved navn
  • Klassens navn
  • Tagnavn
  • Link Text
  • Delvis linktekst
  • XPATH

Locator Value er den unikke værdi, hvorved et webelement kan identificeres. Det er udviklernes og testernes ansvar at sikre, at webelementer er unikt identificerbare ved hjælp af visse egenskaber såsom ID eller navn.

Eksempel:

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

Eksempel: Find element i Selenium

Følgende applikation bruges til demoformål

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

Scenario:

Trin 1: Åbn AUT

Trin 2: Find og klik på alternativknappen

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("https://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();

}

}

FindElements kommandosyntaks

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

FindElementer i Selenium kommandoen tager By-objekt ind som parameteren og returnerer en liste over webelementer. Det returnerer en tom liste, hvis der ikke er nogen elementer fundet ved brug af den givne lokaliseringsstrategi og lokaliseringsværdi. Nedenfor er syntaksen for kommandoen find elements.

Eksempel:

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

Eksempel: Find elementer i Selenium

Scenario:

Trin 1: Åbn URL'en for Application Under Test

Trin 1: Find teksten til radioknapper, og udskriv den på outputkonsollen

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("https://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"));
    }
  }
}

Find element vs Find elementer

Nedenfor er de største forskelle mellem find element og find elements kommandoer.

Find element vs Find elementer
Find element vs Find elementer i Selenium
Find element Find elementer
Returnerer det første mest web-element, hvis der er fundet flere web-elementer med den samme locator Returnerer en liste over webelementer
Kaster undtagelse NoSuchElementException, hvis der ikke er nogen elementer, der matcher lokaliseringsstrategien Returnerer en tom liste, hvis der ikke er nogen webelementer, der matcher lokaliseringsstrategien
Find element af XPath vil kun finde ét webelement Den vil finde en samling af elementer, hvis matcher lokaliseringsstrategien.
Gælder ikke Hvert webelement er indekseret med et tal, der starter fra 0 ligesom en matrix

Resumé

  • Find Element-kommandoen returnerer det webelement, der matcher det første mest element på websiden.
  • Find Elements-kommandoen returnerer en liste over webelementer, der matcher kriterierne.
  • Find Element by XPath i Selenium kommandoen kaster NoSuchElementException, hvis den ikke finder elementet, der matcher kriterierne.
  • Find Elements-kommandoen returnerer en tom liste i Selenium hvis der ikke er elementer, der matcher kriterierne