FindElements in Selenium – FindElement von XPath
Warum benötigen Sie den Befehl „Element(e) suchen“?
Für die Interaktion mit einer Webseite muss ein Benutzer das Webelement lokalisieren. Der Befehl „Element suchen“ wird verwendet, um ein (ein) Webelement innerhalb der Webseite eindeutig zu identifizieren. Der Befehl „Elemente suchen“ hingegen wird verwendet, um die Liste der Webelemente innerhalb der Webseite eindeutig zu identifizieren. Es gibt mehrere Möglichkeiten, ein Webelement innerhalb der Webseite eindeutig zu identifizieren, z. B. ID, Name, Klassenname, Linktext, Teillinktext, Tag-Name und XPATH.
Syntax des FindElement-Befehls
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium Der Befehl „Element suchen“ übernimmt das By-Objekt als Parameter und gibt ein Objekt vom Typ „Liste WebElement“ zurück Selenium. Nach Objekt wiederum kann mit verschiedenen Locator-Strategien verwendet werden, wie z. B. „Element nach ID suchen“. Selenium, Name, Klassenname, XPATH usw. Nachfolgend finden Sie die Syntax des FindElement-Befehls in Selenium Web-Treiber.
Die Locator-Strategie kann einen der folgenden Werte haben.
- ID
- Selenium Element nach Name suchen
- Klassenname
- Verlinke den Namen
- Link Text
- Teilweiser Linktext
- XPATH
Der Locator-Wert ist der eindeutige Wert, anhand dessen ein Webelement identifiziert werden kann. Es liegt in der Verantwortung von Entwicklern und Testern, sicherzustellen, dass Webelemente anhand bestimmter Eigenschaften wie ID oder Name eindeutig identifizierbar sind.
Ejemplo:
WebElement loginLink = driver.findElement(By.linkText("Login"));
Beispiel: Element suchen in Selenium
Die folgende Anwendung wird zu Demozwecken verwendet
https://demo.guru99.com/test/ajax.html
Szenario:
Schritt 1: Öffnen Sie das AUT
Schritt 2: Suchen Sie das Optionsfeld und klicken Sie darauf
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
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
FindElements in Selenium Der Befehl übernimmt By object als Parameter und gibt eine Liste von Webelementen zurück. Es gibt eine leere Liste zurück, wenn mit der angegebenen Locator-Strategie und dem angegebenen Locator-Wert keine Elemente gefunden werden. Nachfolgend finden Sie die Syntax des Befehls „Elemente suchen“.
Ejemplo:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
Beispiel: Elemente suchen in Selenium
Szenario:
Schritt 1: Öffnen Sie die URL für die zu testende Anwendung
Schritt 1: Suchen Sie den Text der Optionsfelder und geben Sie ihn auf 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 suchen vs. Elemente suchen
Nachfolgend sind die Hauptunterschiede zwischen den Befehlen „Element suchen“ und „Elemente suchen“ aufgeführt.
Element finden | Elemente finden |
---|---|
Gibt das erste Webelement zurück, wenn mehrere Webelemente mit demselben Locator gefunden werden | Gibt eine Liste von Webelementen zurück |
Löst die Ausnahme NoSuchElementException aus, wenn keine Elemente vorhanden sind, die der Locator-Strategie entsprechen | Gibt eine leere Liste zurück, wenn keine Webelemente vorhanden sind, die der Locator-Strategie entsprechen |
Mit „Element durch XPath suchen“ wird nur ein Webelement gefunden | Es wird eine Sammlung von Elementen gefunden, die der Locator-Strategie entsprechen. |
Nicht zutreffend | Jedes Webelement wird wie ein Array mit einer Nummer beginnend bei 0 indiziert |
Zusammenfassung
- Der Befehl „Element suchen“ gibt das Webelement zurück, das dem ersten Element auf der Webseite entspricht.
- Der Befehl „Elemente suchen“ gibt eine Liste von Webelementen zurück, die den Kriterien entsprechen.
- Finden Sie Element nach XPath in Selenium Der Befehl löst eine NoSuchElementException aus, wenn das Element nicht gefunden wird, das den Kriterien entspricht.
- Der Befehl „Elemente suchen“ gibt eine leere Liste zurück Selenium wenn es keine Elemente gibt, die den Kriterien entsprechen