WebElement in Selenium
โก Intelligente Zusammenfassung
WebElement in Selenium stellt jedes Formularsteuerelement als programmierbares Objekt dar und ermรถglicht es Testern, mit Textfeldern, Kontrollkรคstchen, Optionsfeldern und Submit-Elementen mithilfe der Methoden findElement, sendKeys, click, clear und submit zu interagieren. Java Codebeispiele.

WebElement in Selenium
Formulare sind die grundlegenden Webelemente, die Informationen von Website-Besuchern erfassen. Webformulare umfassen verschiedene GUI-Steuerelemente wie Textfelder, Passwortfelder, Kontrollkรคstchen, Optionsfelder, Dropdown-Menรผs und Dateiauswahlfelder.
Dieses Tutorial erklรคrt, wie man auf jedes Formularelement zugreift. Selenium WebDriver mit Java. Selenium kapselt jedes Formularelement als Objekt von WebElement. Es bietet eine API zum Auffinden von Elementen und deren Bearbeitung, einschlieรlich der Texteingabe, des Klickens auf Schaltflรคchen und des Absendens von Formularen. Die folgenden Abschnitte beschreiben die fรผr jedes Formularelement verfรผgbaren Methoden.
Einfรผhrung in WebElement, findElement(), findElements()
Selenium WebDriver stellt ein einfaches Formularelement als Objekt dar. WebElement.
WebDriver identifiziert Formularelemente anhand verschiedener Eigenschaften des Webelements, darunter ID, Name und Klasse. XPathTagname, CSS-Selektoren und Linktext.
WebDriver stellt die folgenden beiden WebElement-Methoden zum Auffinden von Elementen bereit:
- findElement() โ findet ein einzelnes Web-Element und gibt es als WebElement zurรผck. Selenium Objekt.
- findElements() โ gibt eine Liste von WebElement-Objekten zurรผck, die den Locator-Kriterien entsprechen.
Das folgende Beispiel zeigt, wie man ein einzelnes Element โ โโein Textfeld auf einer Webseite โ als WebElement-Objekt mithilfe der Methode `findElement()` abruft. Die Methode `findElements()` zum Auffinden mehrerer Elemente wird in spรคteren Tutorials behandelt.
Schritt 1) Importieren Sie das Paket, das zum Erstellen von WebElement-Objekten benรถtigt wird.
Schritt 2) Rufen Sie die in der Klasse WebDriver verfรผgbare Methode findElement() auf, um ein WebElement-Objekt abzurufen, wie unten gezeigt.
Selenium Eingabetext
Eingabefelder beziehen sich auf einen dieser beiden Typen:
- Textfelder - Selenium Eingabetextfelder, die eingegebene Werte entgegennehmen und diese genau so anzeigen, wie sie eingegeben wurden.
- Passwortfelder โ Textfelder, die eingegebene Werte akzeptieren, diese aber als eine Reihe von Sonderzeichen (รผblicherweise Punkte oder Sternchen) maskieren, um sensible Eingaben zu verbergen.
Locators
Die Methode `findElement()` benรถtigt einen Parameter, einen Locator, der auf das Element verweist. Verschiedene Locatoren, darunter `By.id()`, `By.name()`, `By.xpath()` und `By.cssSelector()`, finden Elemente auf der Seite anhand ihrer Eigenschaften wie ID, Name oder Pfad.
Sie kรถnnen Plugins wie FirePath verwenden, um die ID, den XPath und andere Locatorwerte fรผr Elemente zu erhalten.
Verwendung der Beispielseite https://demo.guru99.com/test/login.htmlDer unten stehende Code lokalisiert das Textfeld โE-Mail-Adresseโ mithilfe des ID-Locators und das Feld โPasswortโ mithilfe des Namens-Locators.
- Das E-Mail-Textfeld befindet sich anhand der ID.
- Das Passwortfeld befindet sich neben dem Namen.
sendkeys rein Selenium
sendKeys() in Selenium `sendKeys()` ist eine Methode, mit der wรคhrend der Testausfรผhrung bearbeitbare Inhalte in Text- und Passwortfelder eingegeben werden kรถnnen. Diese Felder werden รผber Locatoren wie Name, Klasse und ID identifiziert. Die Methode ist im `WebElement`-Objekt verfรผgbar. Im Gegensatz zur `type`-Methode ersetzt `sendKeys()` den vorhandenen Text in einem Textfeld nicht.
So geben Sie Text ein Selenium
Um Text in Textfelder und Passwortfelder einzugeben, steht die Methode sendKeys() des WebElements zur Verfรผgung. Selenium.
Verwenden Sie das gleiche Beispiel von https://demo.guru99.com/test/login.htmlDer unten stehende Codeausschnitt findet das Textfeld und das Passwortfeld und gibt Text ein. Selenium.
- Suchen Sie mithilfe des ID-Locators nach dem Textfeld โE-Mail-Adresseโ.
- Suchen Sie das Feld โPasswortโ mithilfe des Namenslocators.
- Geben Sie Text in das Feld โE-Mail-Adresseโ ein. Verwenden Sie dazu Selenium sendKeys-Methode.
- Geben Sie mit der Methode sendKeys() ein Passwort in das Feld โPasswortโ ein.
Werte in der Eingabe lรถschen Boxes
Das klar() Die Methode lรถscht den Text innerhalb eines Eingabefelds. Diese Methode benรถtigt keinen Parameter. Der folgende Codeausschnitt lรถscht den Text aus den Feldern โE-Mailโ oder โPasswortโ.
Selenium Klicken Sie auf Schaltflรคchen
Das Selenium Der Klick-Button wird รผber die Methode click() aufgerufen.
Im obigen Beispiel
- Suchen Sie die Schaltflรคche zum Anmelden.
- Klicken Sie auf der Anmeldeseite der Website auf die Schaltflรคche โAnmeldenโ, um sich zu authentifizieren.
Selenium Schaltflรคchen zum Senden
Absenden-Buttons senden das gesamte Formular an den Server. Sie kรถnnen entweder die Methode `click()` des WebElements aufrufen, wie oben gezeigt, oder die Methode `submit()` eines beliebigen Elements im Formular oder des Absenden-Buttons selbst verwenden.
Bei Verwendung von submit() sucht WebDriver im DOM nach dem Formular, zu dem das Element gehรถrt, und lรถst dann dessen Submit-Funktion aus.
Komplett Code
Hier ist der vollstรคndige, funktionierende Code.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
// Using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
// driver.close();
}
}
Problemlรถsung
Wenn beim Suchen von Elementen eine NoSuchElementException() auftritt, ist das Element zum Zeitpunkt des Zugriffs durch WebDriver auf der Seite nicht vorhanden.
- รberprรผfen Sie Ihren Locator mit FirePath oder der Option โElement untersuchenโ in Chrome.
- Prรผfen Sie, ob der im Code verwendete Wert vom aktuellen Wert des Elements in FirePath abweicht.
- Manche Attribute sind fรผr bestimmte Elemente dynamisch. Wenn sich ein Wert dynamisch รคndert, verwenden Sie By.xpath() oder By.cssSelector(), da diese zuverlรคssiger, aber etwas komplexer sind.
- Manchmal liegt das Problem in einer Wartebedingung; WebDriver fรผhrt den Code mรถglicherweise aus, bevor die Seite vollstรคndig geladen ist.
- Fรผgen Sie vor findElement() eine Wartezeit hinzu, indem Sie implizite oder explizite Wartezeiten verwenden.
Zusammenfassung
- Die folgende Tabelle fasst die Befehle zum Zugriff auf die oben genannten Elementtypen zusammen.
| Element | Befehl | Beschreibung |
|---|---|---|
| Eingang Box | sendKeys () | Dient zur Eingabe von Werten in Textfelder. |
| klar() | Dient dazu, Textfelder von ihrem aktuellen Wert zu leeren. | |
| Links | klicken() | Wird verwendet, um auf den Link zu klicken und zu warten, bis die Seite vollstรคndig geladen ist, bevor mit dem nรคchsten Befehl fortgefahren wird. |
| Taste Senden | einreichen() | Wird verwendet, um das Formular durch Auslรถsen des Submit-Handlers des รผbergeordneten Formulars abzusenden. |
- WebDriver ermรถglicht die Auswahl von mehr als einer Option in einem Mehrfach-SELECT-Element.
- Sie kรถnnen die Methode `submit()` fรผr jedes Element innerhalb des Formulars verwenden. WebDriver lรถst automatisch die Submit-Funktion des Formulars aus, zu dem das Element gehรถrt.






