GăsițiElemente în Selenium – FindElement by XPath
De ce aveți nevoie de comanda Find Element(s)?
Interacțiunea cu o pagină web necesită ca utilizatorul să localizeze elementul web. Comanda Find Element este utilizată pentru a identifica în mod unic un (un) element web în cadrul paginii web. În timp ce, comanda Găsire elemente este utilizată pentru a identifica în mod unic lista de elemente web din pagina web. Există mai multe moduri de a identifica unic un element web în cadrul paginii web, cum ar fi ID, Nume, Nume de clasă, Text link, Text link parțial, Nume etichetă și XPATH.
Sintaxa comenzii FindElement
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium Comanda Find Element preia obiectul By ca parametru și returnează un obiect de tip listă WebElement în Selenium. După obiect, la rândul său, poate fi utilizat cu diverse strategii de localizare, cum ar fi găsirea elementului după ID Selenium, Name, Class Name, XPATH etc. Mai jos este sintaxa comenzii FindElement în Selenium driver web.
Strategia de localizare poate fi oricare dintre următoarele valori.
- ID
- Selenium găsiți elementul după Nume
- Numele clasei
- Nume eticheta
- legătură text
- Text link parțial
- XPATH
Valoarea locatorului este valoarea unică prin care poate fi identificat un element web. Este responsabilitatea dezvoltatorilor și a testerilor să se asigure că elementele web sunt identificabile în mod unic folosind anumite proprietăți, cum ar fi ID-ul sau numele.
Exemplu:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Exemplu: Găsiți element în Selenium
Următoarea aplicație este utilizată în scop demonstrativ
https://demo.guru99.com/test/ajax.html
Scenariu:
Pasul 1: Deschideți AUT
Pasul 2: Găsiți și faceți clic pe butonul radio
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(); } }
Sintaxa comenzii FindElements
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
GăsițiElemente în Selenium comanda preia By object ca parametru și returnează o listă de elemente web. Returnează o listă goală dacă nu există elemente găsite folosind strategia de localizare dată și valoarea locatorului. Mai jos este sintaxa comenzii find elements.
Exemplu:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Exemplu: Găsiți elemente în Selenium
Scenariu:
Pasul 1: Deschideți adresa URL a aplicației în curs de testare
Pasul 1: Găsiți textul butoanelor radio și tipăriți-l pe consola de ieșire
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")); } } }
Găsiți element Vs Găsiți elemente
Mai jos sunt diferențele majore dintre comenzile find element și find elements.
Găsiți element | Găsiți elemente |
---|---|
Returnează primul element web, dacă există mai multe elemente web găsite cu același localizator | Returnează o listă de elemente web |
Aruncă excepția NoSuchElementException dacă nu există elemente care se potrivesc cu strategia de localizare | Returnează o listă goală dacă nu există elemente web care să se potrivească cu strategia de localizare |
Find element by XPath va găsi doar un element web | Acesta va găsi o colecție de elemente ale cărora se potrivesc cu strategia de localizare. |
NU SE APLICĂ | Fiecare element Web este indexat cu un număr care începe de la 0 la fel ca un tablou |
Rezumat
- Comanda Find Element returnează elementul web care se potrivește cu primul element din pagina web.
- Comanda Găsire elemente returnează o listă de elemente web care corespund criteriilor.
- Găsiți Element prin XPath în Selenium comanda aruncă NoSuchElementException dacă nu găsește elementul care corespunde criteriilor.
- Comanda Find Elements returnează o listă goală în Selenium dacă nu există elemente care să corespundă criteriilor