FindElement per XPath in Selenium
โก Intelligente Zusammenfassung
FindElement per XPath in Selenium FindElements identifiziert ein einzelnes Web-Element auf einer Seite eindeutig, wรคhrend FindElements eine vollstรคndige Liste รผbereinstimmender Elemente zurรผckgibt. Beide Befehle akzeptieren ein By-Locator-Objekt, das die Strategien ID, Name, Klassenname und XPath unterstรผtzt.
In Selenium WebDriver, FindElement und FindElements Dies sind die Kernbefehle, mit denen Webelemente auf einer Seite lokalisiert werden, bevor Aktionen wie Klicks oder Texteingaben darauf ausgefรผhrt werden kรถnnen.
Warum benรถtigen Sie den Befehl โElement(e) suchenโ?
Die Interaktion mit einer Webseite erfordert, dass der Benutzer zunรคchst das gewรผnschte Webelement findet. Der Befehl โElement suchenโ dient dazu, ein einzelnes Webelement auf der Webseite eindeutig zu identifizieren, wรคhrend der Befehl โElemente suchenโ eine Liste von Webelementen anzeigt. Ein Element kann mithilfe mehrerer Befehle identifiziert werden. Ortungsstrategien wie z.B. ID, Name, Klassenname, Linktext, Teillinktext, Tag-Name und XPath.
Syntax des FindElement-Befehls
Nachfolgend finden Sie die Syntax des Befehls FindElement in Selenium WebDriver:
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Der Befehl FindElement verwendet das By-Objekt als Parameter und gibt ein einzelnes Objekt vom Typ WebElement zurรผck. Das By-Objekt kann wiederum mit verschiedenen Suchstrategien wie ID, Name, Klassenname, XPath usw. verwendet werden.
Die Locator-Strategie kann einen der folgenden Werte annehmen:
- ID
- Name
- Klassenname
- Verlinke den Namen
- Link Text
- Teilweiser Linktext
- XPath
Der Locatorwert ist der eindeutige Wert, anhand dessen ein Webelement identifiziert werden kann. Es liegt in der Verantwortung von Entwicklern und Testern, sicherzustellen, dass Webelemente mithilfe bestimmter Eigenschaften wie ID oder Name eindeutig identifizierbar sind.
Ejemplo:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Beispiel: Element suchen in Selenium
Die folgende Demo-Anwendung dient zur Veranschaulichung des Befehls FindElement:
https://demo.guru99.com/test/ajax.html
Szenario:
Schritt 1: รffnen Sie das AUT
Schritt 2: Suchen Sie das Optionsfeld, klicken Sie darauf und anschlieรend auf die Schaltflรคche โPrรผfenโ.
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-Befehlssyntax
Wenn Sie alle Elemente benรถtigen, die einem Locator entsprechen, und nicht nur das erste, verwenden Sie FindElements. Die Syntax lautet wie folgt:
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
Der Befehl FindElements verwendet das By-Objekt als Parameter und gibt eine Liste von Webelementen zurรผck. Er gibt eine leere Liste zurรผck, wenn mit der angegebenen Suchstrategie und dem angegebenen Suchwert keine Elemente gefunden werden.
Ejemplo:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Beispiel: Elemente suchen in Selenium
Anhand derselben Demo-Anwendung wird gezeigt, wie FindElements eine Liste รผbereinstimmender Elemente durchlรคuft.
Szenario:
Schritt 1: รffnen Sie den Microsoft Store auf Ihrem Windows-PC URL fรผr die zu testende Anwendung
Schritt 2: Ermitteln Sie den Text der Optionsfelder und geben Sie ihn in der Ausgabekonsole aus.
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"));
}
}
}
Element finden vs. Elemente finden
Nachfolgend sind die wichtigsten Unterschiede zwischen den Befehlen โElement suchenโ und โElemente suchenโ aufgefรผhrt:
| Element finden | Elemente finden |
|---|---|
| Gibt das erste Webelement zurรผck, falls mehrere Webelemente mit demselben Locator gefunden werden. | Gibt eine Liste von Webelementen zurรผck |
| Wirft die Ausnahme NoSuchElementException, wenn keine Elemente gefunden werden, die der Locator-Strategie entsprechen. | Gibt eine leere Liste zurรผck, wenn keine Webelemente vorhanden sind, die der Locator-Strategie entsprechen |
| Die XPath-Funktion โElement suchenโ findet nur ein Webelement. | Es wird eine Sammlung von Elementen finden, die der Locator-Strategie entsprechen. |
| Nicht zutreffend | Jedes Web-Element wird, genau wie bei einem Array, mit einer Zahl ab 0 indiziert. |


