FindElement av XPath i Selenium

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.

Exempel:

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.

Exempel:

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

Sammanfatta detta inlรคgg med: