FindElement XPath-funktiolla Selenium

Miksi tarvitset Etsi elementti(t) -komennon?

Vuorovaikutus verkkosivun kanssa edellyttää, että käyttäjä paikantaa verkkoelementin. Find Element -komentoa käytetään yksilöimään (yksi) web-elementti verkkosivulla. Sen sijaan Etsi elementit -komentoa käytetään yksilöimään Web-sivun verkkoelementtien luettelo. On olemassa useita tapoja yksilöidä Web-elementti verkkosivulla, kuten tunnus, nimi, luokan nimi, linkkiteksti, osittainen linkin teksti, tunnisteen nimi ja XPATH.

FindElement-komennon syntaksi

WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));

Selenium Find Element -komento ottaa By-objektin parametriksi ja palauttaa objektin, jonka tyyppi on luettelo WebElement Selenium. Objektin mukaan puolestaan ​​voidaan käyttää erilaisia ​​paikannusstrategioita, kuten etsi elementti ID:n mukaan Selenium, Nimi, Luokan nimi, XPATH jne. Alla on FindElement-komennon syntaksi Selenium web-ohjain.

Paikannusstrategia voi olla mikä tahansa seuraavista arvoista.

  • ID
  • Selenium etsi elementti nimellä
  • Luokan nimi
  • Merkin nimi
  • linkin teksti
  • Osittainen linkkiteksti
  • XPATH

Locator-arvo on ainutlaatuinen arvo, jonka avulla verkkoelementti voidaan tunnistaa. Kehittäjien ja testaajien vastuulla on varmistaa, että verkkoelementit ovat yksilöitävissä tiettyjen ominaisuuksien, kuten tunnuksen tai nimen, avulla.

Esimerkiksi:

WebElement loginLink = driver.findElement(By.linkText("Login"));

Esimerkki: Etsi elementti Selenium

Seuraavaa sovellusta käytetään demotarkoituksiin

https://demo.guru99.com/test/ajax.html

Skenaario:

Vaihe 1: Avaa AUT

Vaihe 2: Etsi ja napsauta valintanappia

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

List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));

FindElements sisään Selenium komento ottaa By-objektin parametriksi ja palauttaa luettelon verkkoelementeistä. Se palauttaa tyhjän luettelon, jos elementtejä ei löydy annetulla paikannusstrategialla ja paikannusarvolla. Alla on etsi elementtien komennon syntaksi.

Esimerkiksi:

List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));

Esimerkki: Etsi elementtejä Selenium

Skenaario:

Vaihe 1: Avaa testattavan sovelluksen URL-osoite

Vaihe 1: Etsi valintanappien teksti ja tulosta se tulostuskonsoliin

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"));
    }
  }
}

Etsi elementti Vs Etsi elementtejä

Alla on tärkeimmät erot Find element- ja Find elements -komentojen välillä.

Etsi elementti vs Etsi elementtejä
Etsi elementti Vs Etsi elementtejä sisään Selenium
Etsi elementti Etsi elementtejä
Palauttaa ensimmäisen verkkoelementin, jos samalla paikantimella on useita verkkoelementtejä Palauttaa luettelon verkkoelementeistä
Heittää poikkeuksen NoSuchElementException, jos paikannusstrategiaa vastaavia elementtejä ei ole Palauttaa tyhjän luettelon, jos paikannusstrategiaa vastaavia verkkoelementtejä ei ole
Etsi elementti XPathin avulla löytää vain yhden verkkoelementin Se löytää kokoelman elementtejä, jotka vastaavat paikannusstrategiaa.
Ei sovellettavissa Jokainen Web-elementti indeksoidaan numerolla, joka alkaa 0:sta, aivan kuten taulukko

Yhteenveto

  • Etsi elementti -komento palauttaa verkkoelementin, joka vastaa web-sivun ensimmäistä eniten elementtiä.
  • Find Elements -komento palauttaa luettelon ehtoja vastaavista verkkoelementeistä.
  • Etsi elementti XPathin avulla Selenium komento heittää NoSuchElementException, jos se ei löydä ehtoja vastaavaa elementtiä.
  • Find Elements -komento palauttaa tyhjän luettelon Selenium jos kriteereitä vastaavia elementtejä ei ole