FindElements in Selenium – FindElement XPath segítségével

Miért van szüksége az Elem(ek) keresése parancsra?

A weboldallal való interakció megköveteli, hogy a felhasználó megtalálja a webelem helyét. Az Elem keresése parancs egy (egy) webelem egyedi azonosítására szolgál a weboldalon belül. Ezzel szemben az Elemek keresése parancs a webes elemek listájának egyedi azonosítására szolgál a weboldalon. Számos módja van a webelemek egyedi azonosítására a weboldalon belül, például azonosító, név, osztálynév, hivatkozás szövege, részleges hivatkozás szövege, címke neve és XPATH.

FindElement parancs szintaxisa

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

Selenium Az Elem keresése parancs paraméterként a By objektumot veszi be, és egy WebElement típusú lista objektumot ad vissza Selenium. Objektum szerint viszont különféle lokátorstratégiákkal használható, mint például az elem keresése azonosító alapján Selenium, Név, Osztálynév, XPATH stb. Az alábbiakban a FindElement parancs szintaxisa látható Selenium web-illesztőprogram.

A lokációs stratégia a következő értékek bármelyike ​​lehet.

  • ID
  • Selenium elem keresése név szerint
  • Osztály név
  • Címke neve
  • Link szövege
  • Részleges hivatkozás szövege
  • XPATH

A lokátorérték az az egyedi érték, amelynek segítségével egy webelem azonosítható. A fejlesztők és tesztelők felelőssége, hogy bizonyos tulajdonságok, például azonosító vagy név alapján egyedileg azonosíthatók legyenek a webes elemek.

Példa:

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

Példa: Elem keresése itt Selenium

A következő alkalmazást bemutató célra használjuk

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

Forgatókönyv:

Lépés 1: Nyissa meg az AUT-t

Lépés 2: Keresse meg és kattintson a rádiógombra

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();

}

}

FindElements parancs szintaxisa

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

FindElements in Selenium parancs paraméterként beveszi a By objektumot, és visszaadja a webes elemek listáját. Üres listát ad vissza, ha az adott lokátorstratégiával és lokátorértékkel nem található elemek. Az alábbiakban az elemek keresése parancs szintaxisa látható.

Példa:

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

Példa: Elemek keresése itt Selenium

Forgatókönyv:

Lépés 1: Nyissa meg a tesztelés alatt álló alkalmazás URL-jét

Lépés 1: Keresse meg a rádiógombok szövegét, és nyomtassa ki a kimeneti konzolra

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

Elem keresése Vs elemek keresése

Az alábbiakban bemutatjuk az elem keresése és az elemek keresése parancsok közötti főbb különbségeket.

Elem keresése Vs Elemek keresése
Elem keresése Vs Elemek keresése benne Selenium
Keresse meg az elemet Keresse meg az elemeket
Az első legtöbb webes elemet adja vissza, ha több webelem is található ugyanazzal a lokátorral A webes elemek listáját adja vissza
A NoSuchElementException kivételt dobja, ha nincsenek a helymeghatározó stratégiának megfelelő elemek Üres listát ad vissza, ha nincsenek a helymeghatározó stratégiának megfelelő webelemek
Elem keresése XPath segítségével csak egy webelemet talál Olyan elemek gyűjteményét fogja találni, amelyek megfelelnek a lokátor stratégiájának.
Nem alkalmazható Minden webelem egy 0-tól kezdődő számmal van indexelve, akárcsak egy tömb

Összegzésként

  • Az Elem keresése parancs azt a webelemet adja vissza, amelyik az első legtöbb elemnek felel meg a weboldalon belül.
  • Az Elemek keresése parancs a feltételeknek megfelelő webes elemek listáját adja vissza.
  • Keresse meg az elemet XPath segítségével Selenium parancs a NoSuchElementException parancsot dobja, ha nem találja a feltételeknek megfelelő elemet.
  • Az Elemek keresése parancs üres listát ad vissza Selenium ha nincsenek a kritériumoknak megfelelő elemek