Hitta element i Selenium – FindElement av XPath

Varför behöver du kommandot Find Element(s)?

Interaktion med en webbsida kräver att en användare hittar webbelementet. Find Element-kommandot används för att unikt identifiera ett (ett) webbelement på webbsidan. Medan kommandot Find Elements används för att unikt identifiera listan med webbelement på webbsidan. Det finns flera sätt att unikt identifiera ett webbelement på webbsidan, som ID, Namn, Klassnamn, Länktext, Partiell Link Text, Tag Name och XPATH.

FindElement kommandosyntax

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

Selenium Find Element-kommandot tar in By-objektet som parameter och returnerar ett objekt av typen lista WebElement i Selenium. Per objekt kan i sin tur användas med olika lokaliseringsstrategier såsom hitta element efter ID Selenium, Namn, Klassnamn, XPATH etc. Nedan finns syntaxen för FindElement-kommandot i Selenium webbdrivrutin.

Locator Strategy kan vara något av följande värden.

  • ID
  • Selenium hitta element efter namn
  • Klassnamn
  • Taggnamn
  • Länktext
  • Partiell länktext
  • XPATH

Locator Value är det unika värdet med vilket ett webbelement kan identifieras. Det är utvecklarnas och testarnas ansvar att se till att webbelement är unikt identifierbara med hjälp av vissa egenskaper som ID eller namn.

Exempelvis:

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

Exempel: Hitta element i Selenium

Följande applikation används för demoändamål

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

Scenario:

Steg 1: Öppna AUT

Steg 2: Hitta och klicka 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 kommandosyntax

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

Hitta element i Selenium kommandot tar in By objekt som parameter och returnerar en lista med webbelement. Den returnerar en tom lista om det inte finns några element som hittas med den givna lokaliseringsstrategin och lokaliseringsvärdet. Nedan är syntaxen för kommandot find elements.

Exempelvis:

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

Exempel: Hitta element i Selenium

Scenario:

Steg 1: Öppna URL:en för Application Under Test

Steg 1: Hitta texten för alternativknappar och skriv ut den på utmatningskonsolen

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"));
    }
  }
}

Hitta element vs Hitta element

Nedan är de stora skillnaderna mellan kommandon hitta element och hitta element.

Hitta element vs Hitta element
Hitta element Vs Hitta element i Selenium
Hitta element Hitta element
Returnerar det första webbelementet om det finns flera webbelement som hittas med samma lokaliserare Returnerar en lista med webbelement
Kastar undantag NoSuchElementException om det inte finns några element som matchar lokaliseringsstrategin Returnerar en tom lista om det inte finns några webbelement som matchar lokaliseringsstrategin
Hitta element av XPath hittar bara ett webbelement Den kommer att hitta en samling element vars matchar lokaliseringsstrategin.
Ej tillämplig Varje webbelement indexeras med ett tal som börjar från 0 precis som en array

Sammanfattning

  • Find Element-kommandot returnerar webbelementet som matchar det första elementet på webbsidan.
  • Kommandot Find Elements returnerar en lista över webbelement som matchar kriterierna.
  • Hitta Element av XPath i Selenium kommandot kastar NoSuchElementException om det inte hittar elementet som matchar kriterierna.
  • Find Elements-kommandot returnerar en tom lista i Selenium om det inte finns några element som matchar kriterierna