Selenium WebDriver

Wir benötigen Browser, um Webanwendungen zu testen. Selenium automatisiert Browser und hilft uns bei der Automatisierung von Tests von Webanwendungen in verschiedenen Browsern. Die Selenium-API hat viele Klassen und Schnittstellen bereitgestellt, um mit verschiedenen Arten von Browsern und HTML-Elementen zu arbeiten.

Was ist die Selenium WebDriver-Schnittstelle?

Selenium WebDriver ist eine Schnittstelle, die eine Reihe von Methoden definiert. Die Implementierung wird jedoch durch die browserspezifischen Klassen bereitgestellt. Einige der Implementierungsklassen sind AndroidDriver, ChromeDriver, FirefoxDriver, InternetExplorerDriver, IPhoneDriver, SafariDriver usw. Die Hauptfunktionalität von WebDriver besteht darin, den Browser zu steuern. Es hilft uns sogar, die HTML-Seitenelemente auszuwählen und Operationen wie Klicken, Ausfüllen von Formularfeldern usw. an ihnen durchzuführen.

Wenn wir Ihre Testfälle in einem Firefox-Browser ausführen möchten, müssen wir die FirefoxDriver-Klasse verwenden. Ähnlich, wenn wir die Testfälle im Chrome-Browser ausführen möchten, müssen wir die ChromeDriver-Klasse verwenden.

Selenium WebDriver-Methoden

SearchContext ist die oberste Schnittstelle in der Selenium-API, die zwei Methoden hat – findElement() und findElements(). Die Selenium WebDriver-Schnittstelle hat viele abstrakte Methoden wie get(String url), quit(), close(), getWindowHandle(), getWindowHandles(), getTitle() usw. WebDriver hat verschachtelte Schnittstellen wie Window, Navigation, Timeouts usw. Diese verschachtelten Schnittstellen werden verwendet, um Operationen wie back(), forward() usw. durchzuführen.

  • get(String url): Diese Methode startet einen neuen Browser und öffnet die angegebene URL in der Browserinstanz.
  • getWindowHandle(): Sie wird verwendet, um ein einzelnes Fenster, d.h. das Hauptfenster, zu handhaben. Der Rückgabetyp ist String. Sie gibt den Browserfenster-Handle des fokussierten Browsers zurück.
  • getWindowHandles(): Sie wird verwendet, um mehrere Fenster zu handhaben. Der Rückgabetyp ist Set. Sie gibt alle Handles von allen durch Selenium WebDriver geöffneten Browsern zurück.
  • close(): Dieser Befehl wird verwendet, um das aktuell fokussierte Browserfenster zu schließen.
  • quit(): Diese Methode schließt alle aktuell geöffneten Browserfenster und beendet die WebDriver-Sitzung.
  • getTitle(): Diese Methode wird verwendet, um den Titel der Webseite, auf der der Benutzer gerade arbeitet, abzurufen.

Liste der Klassen, die WebDriver implementieren

Die wichtigsten Implementierungsklassen der WebDriver-Schnittstelle sind ChromeDriver, EdgeDriver, FirefoxDriver, InternetExplorerDriver usw. Jede Treiberklasse entspricht einem Browser. Wir erstellen einfach das Objekt der Treiberklassen und arbeiten mit ihnen.

  • ChromeDriver: Er hilft Ihnen, Selenium-Skripte im Chrome-Browser auszuführen.
  • FirefoxDriver: Er hilft Ihnen, Selenium-Skripte im Firefox-Browser auszuführen.
  • InternetExplorerDriver: Er hilft Ihnen, Selenium-Skripte im InternetExplorer-Browser auszuführen.

Liste der Befehle auf WebElement

Selenium WebElement repräsentiert ein HTML-Element. Wir können eine Instanz von WebElement mit der Methode findElement() erhalten und dann spezifische Aktionen wie Klicken, Absenden usw. ausführen. Einige der häufig verwendeten WebElement-Methoden sind:

Befehl Beschreibung Syntax
findElement() Diese Methode findet das erste Element innerhalb der aktuellen Webseite unter Verwendung des gegebenen Lokalisators. WebElement element = driverObject.findElement(By.locator(“Wert”));
sendKeys() Diese Methode gibt einen Wert in ein Bearbeitungsfeld oder Textfeld ein. driver.findElement(By.elementLocator(“Wert”)).sendkeys(“Wert”);
clear() Es löscht den Wert aus einem Bearbeitungsfeld oder Textfeld. driverObject.findElement(By.locatorname(“Wert”)).clear();
click() Es klickt ein Element (Button, Link, Checkbox) usw. driverObject.findElement(By.ElementLocator(“LocatorWert”)).click();

Selenium WebDriver Beispiel – Webseite Titel ausgeben

Lassen Sie uns ein einfaches Beispiel ansehen, wie Selenium WebDriver verwendet wird, um den Firefox-Browser aufzurufen und den Titel einer Webseite auszudrucken.

package com.journaldev.selenium.firefox;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class GeckoDriverExample {

    public static void main(String[] args) {
        //specify the location of GeckoDriver for Firefox browser automation
        System.setProperty("webdriver.gecko.driver", "geckodriver");
        WebDriver driver = new FirefoxDriver();
        driver.get("https://journaldev.com");
        String PageTitle = driver.getTitle();
        System.out.println("Page Title is:" + PageTitle);
        driver.close();
    }
}

Output:

1551941763563	mozrunner::runner	INFO	Running command: "/Applications/Firefox.app/Contents/MacOS/firefox-bin" "-marionette" "-foreground" "-no-remote" "-profile" "/var/folders/1t/sx2jbcl534z88byy78_36ykr0000gn/T/rust_mozprofile.t6ZyMHsrf2bh"
1551941764296	addons.webextension.screenshots@mozilla.org	WARN	Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid host permission: resource://pdf.js/
1551941764297	addons.webextension.screenshots@mozilla.org	WARN	Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid host permission: about:reader*
Can't find symbol 'GetGraphicsResetStatus'.
1551941765794	Marionette	INFO	Listening on port 61417
1551941765818	Marionette	WARN	TLS certificate errors will be ignored for this session
Mar 07, 2019 12:26:05 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Page Title is:JournalDev - Java, Java EE, Android, Python, Web Development Tutorials
1551941814652	Marionette	INFO	Stopped listening on port 61417

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren:

centron Managed Cloud Hosting in Deutschland

Java-Array: So prüfst du Werte effizient

JavaScript
Wie prüft man, ob ein Java Array einen Wert enthält? Es gibt viele Möglichkeiten, um zu überprüfen, ob ein Java Array einen bestimmten Wert enthält. Einfache Iteration mit einer for-Schleife…