Pronađite elemente u Selenium – FindElement by XPath
Zašto vam je potrebna naredba Find Element(s)?
Interakcija s web stranicom zahtijeva od korisnika da locira web element. Naredba Find Element koristi se za jedinstvenu identifikaciju (jednog) web elementa unutar web stranice. Dok se naredba Find Elements koristi za jedinstvenu identifikaciju popisa web elemenata unutar web stranice. Postoji više načina za jedinstvenu identifikaciju web elementa unutar web stranice kao što su ID, naziv, naziv klase, tekst veze, djelomični tekst veze, naziv oznake i XPATH.
Sintaksa naredbe FindElement
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium Naredba Find Element uzima objekt By kao parametar i vraća objekt tipa popis WebElement Selenium. Po objektu se pak može koristiti s raznim strategijama lokatora kao što je traženje elementa po ID-u Selenium, Naziv, Naziv klase, XPATH itd. Ispod je sintaksa naredbe FindElement u Selenium web vozač.
Strategija lokatora može biti bilo koja od sljedećih vrijednosti.
- ID
- Selenium pronađite element prema imenu
- Naziv razreda
- Naziv oznake
- Link Text
- Djelomični tekst veze
- XPATH
Vrijednost lokatora je jedinstvena vrijednost pomoću koje se može identificirati web element. Odgovornost je razvojnih programera i testera osigurati da se web-elementi mogu jedinstveno identificirati pomoću određenih svojstava kao što su ID ili naziv.
Primjer:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Primjer: Pronađite element u Selenium
Sljedeća aplikacija koristi se u demo svrhe
http://demo.guru99.com/test/ajax.html
Scenarij:
Korak 1: Otvorite AUT
Korak 2: Pronađite i kliknite radio gumb
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("http://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(); } }
Sintaksa naredbe FindElements
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
Pronađite elemente u Selenium naredba uzima objekt By kao parametar i vraća popis web elemenata. Vraća prazan popis ako nema pronađenih elemenata pomoću dane strategije lokatora i vrijednosti lokatora. Ispod je sintaksa naredbe pronađi elemente.
Primjer:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Primjer: Pronađite elemente u Selenium
Scenarij:
Korak 1: Otvorite URL za aplikaciju koja se testira
Korak 1: Pronađite tekst radio gumba i ispišite ga na izlaznu konzolu
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("http://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")); } } }
Pronađi element protiv Pronađi elemente
Ispod su glavne razlike između traženja elementa i naredbi traženja elemenata.
Pronađi element | Pronađite elemente |
---|---|
Vraća prvi najveći web element ako postoji više web elemenata pronađenih s istim lokatorom | Vraća popis web elemenata |
Izbacuje iznimku NoSuchElementException ako nema elemenata koji odgovaraju strategiji lokatora | Vraća prazan popis ako nema web elemenata koji odgovaraju strategiji lokatora |
Find element by XPath će pronaći samo jedan web element | Pronaći će kolekciju elemenata koji odgovaraju strategiji lokatora. |
Nije primjenjivo | Svaki web element indeksiran je brojem počevši od 0 baš kao niz |
rezime
- Naredba Find Element vraća web-element koji odgovara prvom najvećem elementu unutar web-stranice.
- Naredba Find Elements vraća popis web elemenata koji odgovaraju kriterijima.
- Find Element by XPath in Selenium naredba izbacuje NoSuchElementException ako ne pronađe element koji odgovara kriterijima.
- Naredba Find Elements vraća prazan popis Selenium ako nema elemenata koji odgovaraju kriterijima