Selenium findElement und findElements Beispiele
Wenn Sie mit einer Webseite interagieren möchten, benötigen wir, dass ein Benutzer die Web-Elemente findet. Wir beginnen normalerweise damit, die HTML-Elemente auf der Seite zu finden, wenn wir planen, irgendeine Webanwendung mit WebDriver zu automatisieren. Selenium WebDriver definiert zwei Methoden zur Identifizierung der Elemente, nämlich findElement und findElements.
-
- findElement: Dieser Befehl wird verwendet, um ein einzigartiges Web-Element auf der Webseite zu identifizieren.
- findElements: Dieser Befehl wird verwendet, um die Liste der einzigartigen Web-Elemente auf der Webseite zu identifizieren.
Es gibt mehrere Möglichkeiten, ein Web-Element auf der Webseite einzigartig zu identifizieren, wie z.B. ID, Name, Klassenname, LinkText, PartialLinkText, TagName und XPath.
Unterschied zwischen findElement und findElements Methoden
FindElement() Methode
Dieser Befehl wird verwendet, um auf ein einzelnes Element auf der Webseite zuzugreifen
Er gibt das Objekt des ersten passenden Elements des angegebenen Lokalisierers zurück
Er wirft eine NoSuchElementException aus, wenn es ihm nicht gelingt, das Element zu identifizieren
FindElements() Methode
Dieser Befehl wird verwendet, um die Liste der einzigartigen Web-Elemente auf der Webseite zu identifizieren.
Die Verwendung dieser Methode ist sehr begrenzt
Wenn das Element nicht auf der Seite existiert, dann wird er einen Wert mit einer leeren Liste zurückgeben
Selenium findElement Befehl
Der Find Element-Befehl nimmt das By-Objekt als Parameter und gibt ein Objekt vom Typ WebElement zurück. Das By-Objekt kann mit verschiedenen Lokalisierungsstrategien verwendet werden, wie z.B. ID, Name, Klassenname, Linktext, XPath usw.
Syntax des FindElement-Befehls
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Lokalisierungsstrategie kann einer der folgenden Werte sein.
-
-
- ID
- Name
- Klassenname
- Tag-Name
- Linktext
- Partial Link Text
- XPath
-
Lokalisierungswert ist der einzigartige Wert, mit dem wir das Web-Element identifizieren können. Es ist die Hauptverantwortung von Entwicklern und Testern, sicherzustellen, dass Web-Elemente einzigartig identifiziert werden, indem bestimmte Eigenschaften wie ID oder Name verwendet werden. Beispiel:
WebElement login= driver.findElement(By.linkText("Login"));
Selenium findElements Befehl
Der Selenium findElements-Befehl nimmt das By-Objekt als Parameter und gibt eine Liste von Web-Elementen zurück. Er gibt eine leere Liste zurück, wenn keine Elemente mit der gegebenen Lokalisierungsstrategie und dem Lokalisierungswert gefunden werden.
Syntax des FindElements-Befehls
List elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
Beispiel:
List listOfElements = driver.findElements(By.xpath("//div"));
Wie man den Selenium findElement Befehl verwendet
Die folgende Anwendung wird zu Demonstrationszwecken verwendet: https://www.irctc.co.in/nget/user-registration Szenario
-
-
- Öffnen Sie https://www.irctc.co.in/nget/user-registration für AUT
- Finden und klicken Sie auf Radiobutton
-
package com.journaldev.selenium.findelement;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class SeleniumFindElement {
public static void main (String [] args){
System.setProperty("webdriver.chrome.driver","D:\\Drivers\\chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.manage().window.maximize():
driver.get("https://www.irctc.co.in/nget/user-registration");
//Finden Sie den Radiobutton für "Male" mit ID und klicken Sie darauf
driver.findElement(By.id("M")).click();
}
}
Wie man den Selenium findElements Befehl verwendet
Die folgende Anwendung wird zu Demonstrationszwecken verwendet https://www.irctc.co.in/nget/user-registration Szenario
-
-
- Öffnen Sie https://www.irctc.co.in/nget/user-registration für AUT
- Finden Sie den Text von Radiobuttons und drucken Sie ihn auf die Konsole
-
package com.journaldev.selenium.findelements;
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 SeleniumFindElements {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","D:\\Drivers\\chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.get("https://www.irctc.co.in/nget/user-registration");
List elements = driver.findElements(By.id("M"));
System.out.println("Anzahl der Elemente:" +elements.size());
for(int i=0; i<elements.size(); i++){
System.out.println("Radiobutton-Text:" + elements.get(i).getAttribute("value"));
}
}
}
Mehrere By-Strategien zum Zugriff auf Selenium-Lokalisierer
Selenium WebDriver bezieht sich auf die Web-Elemente durch die Verwendung der Methode findElement(By.). Die Methode findElement verwendet ein Lokalisierungsobjekt, das als <„By“> bekannt ist. Es gibt verschiedene Arten von „By“-Strategien, die Sie je nach Ihrem Bedarf verwenden können.
1. By ID
Befehl: driver.findElement(By.id(<element ID>))
Beispiel: <input id=“JournalDev“>
Java-Beispielcode, um das Eingabeelement nach ID zu finden:
WebElement user = driver.findElement(By.id("JournalDev"));
2. By Name
Befehl: driver.findElement(By.name(<element-name>))
Beispiel: <input name=“JournalDev“>
Java-Beispielcode, um das Eingabeelement nach Name zu finden:
WebElement user = driver.findElement(By.name("JournalDev"));
3. By Class Name
Befehl: driver.findElement(By.className(<element-class>))
Beispiel: <input class=“JournalDev“>
Java-Beispielcode, um das Eingabeelement nach Klassenname zu finden:
WebElement user = driver.findElement(By.className("JournalDev"));
4. By LinkText
Befehl: driver.findElement(By.linkText(<link text>))
Beispiel: <a href=“#test1″>JournalDev-1</a> <a href=“#test2″>JournalDev-2</a>
Java-Beispielcode, um das Element nach Link- oder Teil-Link-Text zu finden:
WebElement link = driver.findElement(By.linkText("JournalDev-1"));
WebElement link = driver.findElement(By.partialLinkText("JournalDev-2"));
5. By CssSelector
Befehl: driver.findElement(By.cssSelector(<css-selector>))
Beispiel: <input class=“email“ id=“email“ type=“text“ placeholder=“xxx@email.com“> <input class=“btn btn-small“ type=“submit“ value=“Abonnieren zum Blog>
Java-Beispielcode, um das Element nach Link- oder Teil-Link-Text zu finden:
WebElement emailText = driver.findElement(By.cssSelector("input#email"));
6. By XPath
Befehl: driver.findElement(By.xpath(<xpath>))
Java-Beispielcode für XPath:
// Absolute path
WebElement item = driver.findElement(By.xpath("html/head/body/table/tr/td"));
// Relative path
WebElement item = driver.findElement(By.xpath("//input"));
// Finding elements using indexes
WebElement item = driver.findElement(By.xpath("//input[2]"));
Selenium findElement und findElements Beispiele