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.

  • ๐Ÿงฉ Ortungsgenauigkeit: Identifizieren Sie Formularelemente anhand von ID, Name, XPath oder CSS-Selektor mittels findElement(), um eine stabile Interaktion mit dem DOM zu gewรคhrleisten.
  • โœ๏ธ Eingabeverarbeitung: Sende bearbeitbaren Text mithilfe von sendKeys() in Felder, ohne vorhandene Werte wรคhrend der automatisierten Ausfรผhrung zu รผberschreiben.
  • รฐลธยงยน Feld zurรผcksetzen: Leeren Sie die Eingabefelder mit der Methode clear(), bevor Sie erneut Daten eingeben, um zu verhindern, dass bei spรคteren รœberprรผfungen Restwerte auftreten.
  • ๐Ÿ–ฑ๏ธ Interaktion mit den Schaltflรคchen: Durch die click()-Methode des entsprechenden WebElement-Verweis kรถnnen Anmelde- oder Navigationsaktionen ausgelรถst werden.
  • ๐Ÿ“จ Formulareinreichung: Verwenden Sie submit() fรผr ein beliebiges Element innerhalb eines Formulars, damit WebDriver automatisch den Submit-Handler des รผbergeordneten Formulars auslรถst.
  • ๐Ÿ›ก๏ธ Stabilitรคtstipp: Um eine NoSuchElementException auf dynamisch geladenen Seiten zu verhindern, sollten implizite oder explizite Wartezeiten vor den Aufrufen von findElement() eingefรผgt werden.

WebElement in Selenium

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

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:

  1. Textfelder - Selenium Eingabetextfelder, die eingegebene Werte entgegennehmen und diese genau so anzeigen, wie sie eingegeben wurden.
  2. Passwortfelder โ€“ Textfelder, die eingegebene Werte akzeptieren, diese aber als eine Reihe von Sonderzeichen (รผblicherweise Punkte oder Sternchen) maskieren, um sensible Eingaben zu verbergen.

    Selenium Eingabetext

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.

Locators

  1. Das E-Mail-Textfeld befindet sich anhand der ID.
  2. 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.

Texte ein Selenium

  1. Suchen Sie mithilfe des ID-Locators nach dem Textfeld โ€žE-Mail-Adresseโ€œ.
  2. Suchen Sie das Feld โ€žPasswortโ€œ mithilfe des Namenslocators.
  3. Geben Sie Text in das Feld โ€žE-Mail-Adresseโ€œ ein. Verwenden Sie dazu Selenium sendKeys-Methode.
  4. 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โ€œ.

Werte in der Eingabe lรถschen Boxes

Selenium Klicken Sie auf Schaltflรคchen

Das Selenium Der Klick-Button wird รผber die Methode click() aufgerufen.

Im obigen Beispiel

  1. Suchen Sie die Schaltflรคche zum Anmelden.
  2. Klicken Sie auf der Anmeldeseite der Website auf die Schaltflรคche โ€žAnmeldenโ€œ, um sich zu authentifizieren.

Selenium Klicken Sie auf Schaltflรคchen

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.

Selenium Schaltflรคchen zum Senden

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.

  1. รœberprรผfen Sie Ihren Locator mit FirePath oder der Option โ€žElement untersuchenโ€œ in Chrome.
  2. Prรผfen Sie, ob der im Code verwendete Wert vom aktuellen Wert des Elements in FirePath abweicht.
  3. 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.
  4. Manchmal liegt das Problem in einer Wartebedingung; WebDriver fรผhrt den Code mรถglicherweise aus, bevor die Seite vollstรคndig geladen ist.
  5. 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.

Hรคufig gestellte Fragen

Die Methode `findElement()` gibt das erste รผbereinstimmende WebElement zurรผck und lรถst eine `NoSuchElementException` aus, falls keines gefunden wird. Die Methode `findElements()` gibt eine Liste รผbereinstimmender WebElements zurรผck und eine leere Liste, falls kein Element dem Locator entspricht.

Ein WebElement ist ein Selenium Ein Wrapper, der Automatisierungsmethoden wie `sendKeys`, `click` und `clear` bereitstellt. Ein HTML-Element ist der zugrundeliegende DOM-Knoten. WebDriver lokalisiert den DOM-Knoten und gibt eine WebElement-Referenz zur Interaktion zurรผck.

Ja. KI-gestรผtzte Tools analysieren das DOM und schlagen stabile Selektoren mithilfe von ID-, Namens-, relativen XPath- oder CSS-Selektoren vor. Sie reduzieren die Anfรคlligkeit der Selektoren, indem sie eindeutige Attributkombinationen erkennen und bei Attributรคnderungen Ausweichmรถglichkeiten vorschlagen.

Ja. KI-gestรผtzte, selbstheilende Locatoren binden ein WebElement automatisch neu, wenn sich ein Attribut รคndert. Dies reduziert unzuverlรคssige Fehler, senkt den Wartungsaufwand und sorgt fรผr eine stabilere Verbindung. Selenium Die Suiten sind auch bei hรคufigen UI-Updates in agilen Entwicklungszyklen stabil.

Hรคufige Ausnahmen von WebElement sind StaleElementReferenceException, ElementNotInteractableException, ElementClickInterceptedException, InvalidElementStateException und TimeoutException. Jede dieser Ausnahmen deutet auf ein anderes Problem mit dem DOM, der Sichtbarkeit oder der Synchronisierung hin, das durch Warten oder Aktualisieren der Elementreferenzen behandelt werden sollte.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: