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 Vs găsiți elemente
Găsiți element Vs Găsiți elemente în Selenium
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