Selenium WebDriver

Wir brauchen Browser, um Webanwendungen zu testen. Selenium automatisiert den Browser und hilft uns bei der Automatisierung des Testens von Webanwendungen in verschiedenen Browsern. Die Selenium-API bietet viele Klassen und Schnittstellen, um mit verschiedenen Arten von Browsern und HTML-Elementen zu arbeiten.

Was ist das Selenium WebDriver Interface?

Der Selenium WebDriver ist eine Schnittstelle, die eine Reihe von Methoden definiert. Die Implementierung wird jedoch von den browser-spezifischen Klassen bereitgestellt. Einige Implementierungsklassen sind AndroidDriver, ChromeDriver, FirefoxDriver, InternetExplorerDriver, IPhoneDriver, SafariDriver usw. Die Hauptfunktionalität des WebDriver besteht darin, den Browser zu steuern. Er hilft uns auch dabei, die HTML-Seitenelemente auszuwählen und Operationen wie Klicken, das Ausfüllen von Formularfeldern usw. durchzuführen.

Selenium WebDriver

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

Selenium WebDriver Methoden

SearchContext ist das oberste Interface in der Selenium-API, das zwei Methoden hat – findElement() und findElements(). Das Selenium WebDriver-Interface hat viele abstrakte Methoden wie get(String url), quit(), close(), getWindowHandle(), getWindowHandles(), getTitle() usw. WebDriver hat verschachtelte Interfaces wie \texttt{Window}, \texttt{Navigation}, \texttt{Timeouts} usw. Diese verschachtelten Interfaces werden verwendet, um Operationen wie back(), forward() usw. durchzuführen.

Method Description
get(String url) This method will launch a new browser and opens the given URL in the browser instance.
getWindowHandle() It is used to handle single window i.e. main window. It return type is string. It will returns browser windlw handle from focused browser.
getWindowHandles() It is used to handle multiple windows. It return type is Set. It will returns all handles from all opened browsers by Selenium WebDriver.
close() This command is used to close the current browser window which is currently in focus.
quit() This method will closes all the browsers windows which are currently opened and terminates the WebDriver session.
getTitle() This method is used to retrieve the title of the webpage the user currently working on.

Liste der Klassen, die WebDriver implementieren

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

Class Description
ChromeDriver It helps you to execute Selenium Scripts on Chrome browser.
FirefoxDriver It helps you to execute Selenium Scripts on Firefox browser.
InternetExplorerDriver It helps you to execute Selenium Scripts on InternetExplorer browser.

Liste der Befehle auf WebElement

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

Command Description Syntax
findElement() This method finds the first element within the current web page by using given locator. WebElement element = driverObject.findElement(By.locator(“value”));
sendKeys() This method enters a value in to an Edit Box or Text box. driver.findElement(By.elementLocator(“value”)).sendkeys(“value”);
clear() It clears the Value from an Edit box or Text Box. driverObject.findElement(By.locatorname(“value”)).clear();
click() It clicks an Element (Button, Link, Checkbox) etc. driverObject.findElement(By.ElementLocator(“LocatorValue”)).click();

Selenium WebDriver Beispiel – Website-Titel ausgeben

Werfen wir einen Blick auf ein einfaches Beispiel für die Verwendung von Selenium WebDriver, um den Firefox-Browser aufzurufen und den Titel einer Website 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) {
		//geben Sie den Speicherort von GeckoDriver für die Automatisierung des Firefox-Browsers an
		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();
	}
}

Ausgabe:

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	[email protected]	WARN	Loading extension '[email protected]': Reading manifest: Invalid host permission: resource://pdf.js/
1551941764297	[email protected]	WARN	Loading extension '[email protected]': 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
Selenium WebDriver Example

Sie können mehr Selenium-Beispiele aus unserem GitHub-Repository überprüfen.

Referenz: WebDriver GitHub-Code

Source:
https://www.digitalocean.com/community/tutorials/selenium-webdriver