FindElement av XPath i Selenium
โก Smart sammanfattning
FindElement av XPath i Selenium identifierar unikt ett enskilt webbelement pรฅ en sida, medan FindElements returnerar en komplett lista รถver matchande element. Bรฅda kommandona accepterar ett By locator-objekt som tรคcker strategierna ID, Name, Class Name och XPath.
In Selenium Webbdrivrutin, HittaElement och Hitta element รคr de kรคrnkommandon som anvรคnds fรถr att hitta webbelement pรฅ en sida innan nรฅgon รฅtgรคrd, som ett klick eller textinmatning, kan utfรถras pรฅ dem.
Varfรถr behรถver du kommandot Find Element(s)?
Interaktion med en webbsida krรคver att anvรคndaren fรถrst lokaliserar webbelementet. Kommandot Hitta element anvรคnds fรถr att unikt identifiera ett webbelement pรฅ webbsidan, medan kommandot Hitta element anvรคnds fรถr att identifiera en lista med webbelement. Ett element kan identifieras med hjรคlp av flera lokaliseringsstrategier sรฅsom ID, Namn, Klassnamn, Lรคnktext, Delvis lรคnktext, Taggnamn och XPath.
FindElement kommandosyntax
Nedan fรถljer syntaxen fรถr FindElement-kommandot i Selenium WebDriver:
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Kommandot FindElement tar By-objektet som parameter och returnerar ett enda objekt av typen WebElement. By-objektet kan i sin tur anvรคndas med olika lokaliseringsstrategier som ID, namn, klassnamn, XPath etc.
Lokaliseringsstrategin kan vara vilket som helst av fรถljande vรคrden:
- ID
- Namn
- Klassnamn
- Taggnamn
- Lรคnktext
- Partiell lรคnktext
- XPath
Locator Value รคr det unika vรคrde med vilket ett webbelement kan identifieras. Det รคr utvecklares och testares 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 demoprogram anvรคnds fรถr att visa FindElement-kommandot i praktiken:
https://demo.guru99.com/test/ajax.html
Scenario:
Steg 1: รppna AUT
Steg 2: Hitta och klicka pรฅ radioknappen och klicka sedan pรฅ knappen Markera
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
Nรคr du behรถver alla element som matchar en locator snarare รคn bara det fรถrsta, anvรคnd FindElements. Nedan fรถljer dess syntax:
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
Kommandot FindElements tar By-objektet som parameter och returnerar en lista med webbelement. Det returnerar en tom lista om inga element hittas med den angivna lokaliseringsstrategin och lokaliseringsvรคrdet.
Exempel:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Exempel: Hitta element i Selenium
Samma demoapplikation anvรคnds fรถr att visa hur FindElements itererar รถver en lista med matchande element.
Scenario:
Steg 1: รppna URL fรถr tillรคmpning under test
Steg 2: Hitta texten fรถr radioknapparna och skriv ut den pรฅ utdatakonsolen
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 fรถljer de viktigaste skillnaderna mellan kommandona Hitta element och Hitta element:
| Hitta element | Hitta element |
|---|---|
| Returnerar det fรถrsta webbelementet om det finns flera webbelement med samma positionerare | Returnerar en lista med webbelement |
| Utlรถser undantaget 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 med XPath hittar bara ett webbelement | Den kommer att hitta en samling element som matchar lokaliseringsstrategin |
| Ej tillรคmplig | Varje webbelement indexeras med ett nummer som bรถrjar pรฅ 0, precis som en array |


