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 | 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
