Gewünschte Funktionen in Selenium WebDriver

Was sind gewünschte Fähigkeiten?

Gewünschte Fähigkeiten ist eine Klasse in Selenium, mit der Eigenschaften von Browsern festgelegt werden, um browserübergreifende Tests von Webanwendungen durchzuführen. Es speichert die Funktionen als Schlüssel-Wert-Paare und diese Funktionen werden zum Festlegen von Browsereigenschaften wie Browsername, Browserversion, Pfad des Browsertreibers im System usw. verwendet, um das Verhalten des Browsers zur Laufzeit zu bestimmen.

  • Die gewünschte Funktion kann auch zum Konfigurieren der Treiberinstanz von Selenium WebDriver verwendet werden.
  • Wir können eine Treiberinstanz wie konfigurieren FirefoxTreiber, ChromeDriver, InternetExplorerDriver durch Verwendung der gewünschten Funktionen.

Warum brauchen wir gewünschte Fähigkeiten?

Gewünschte Fähigkeiten werden benötigt, weil jeder Testen Das Szenario sollte in einer bestimmten Testumgebung ausgeführt werden. Die Testumgebung kann ein Webbrowser sein, Mobil Gerät, mobiler Emulator, mobiler Simulator usw. Die Desired Capabilities Class hilft uns, dem Webdriver mitzuteilen, welche Umgebung wir in unserem Testskript verwenden werden.

Der setCapability-Methode der DesiredCapabilities-Klasse, die im erläutert wird later Teil des Tutorials, kann in Selenium Grid verwendet werden. Es wird verwendet, um eine parallele Ausführung auf verschiedenen Maschinenkonfigurationen durchzuführen.

Beispiel: Gitter

Gewünschte Funktionen in Selenium WebDriver

Es wird verwendet, um die Browsereigenschaften (z. B. Chrome, IE), den Plattformnamen (z. B. Linux, Windows), die bei der Ausführung der Testfälle verwendet werden.

Im Fall der mobilen Automatisierung können wir die Plattformversion der mobilen Plattform (z. B. 3.x, 4.x in Android) festlegen, da wir die Tests auf verschiedenen Arten mobiler Geräte durchführen.

Gewünschte Funktionen in Selenium WebDriver

Das obige Emulatorbeispiel zeigt den Plattformsatz Android und den Plattformversionssatz IceCream Sandwich (4.x).

Gewünschte Fähigkeiten sind in folgenden Fällen nützlicher:

  • Bei der Automatisierung mobiler Anwendungen können die Browsereigenschaften und die Geräteeigenschaften festgelegt werden.
  • Im Selenium-Grid, wenn wir die Testfälle in einem anderen Browser mit unterschiedlichen Betriebssystemen und Versionen ausführen möchten.

Arten der gewünschten Fähigkeitsmethoden

Hier werden wir eine andere Art von Methoden für gewünschte Fähigkeiten sehen und sehen, wie man eine dieser Methoden verwendet.setCapability-Methode“.

#1) getBrowserName()

public java.lang.String getBrowserName()

#2) setBrowserName()

public void setBrowserName(java.lang.String browserName)

#3) getVersion()

public java.lang.String getVersion()

#4) setVersion()

public void setVersion(java.lang.String version)

#5) getPlatform()

public Platform getPlatform()

#6) setPlatform()

public Platform setPlatform()

#7) getCapability()-Methode

Die Methode getCapability() der Klasse DesiredCapabilities kann verwendet werden, um die Funktion abzurufen, die derzeit im System verwendet wird.

public java.lang.Object getCapability(java.lang.String capabilityName)

#8) setCapability()-Methode

Der setCapability()-Methode der Klasse „Desired Capabilities“ wird verwendet, um die Eigenschaft einer Testumgebung festzulegen, wie Gerätename, Name und Version des Betriebssystems, Name und Version des Browsers, absoluter Pfad der zu testenden App (die APK-Datei der zu testenden Android-App), App Aktivität (in Android) und appPackage (in Java).

„setCapability-Methode“ in Javac hat die folgenden Erklärungen:

setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability  :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability  :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability  :public void setCapability(java.lang.String key,java.lang.Object value)

Legen Sie die Fähigkeit im Selenium-Beispiel fest

Betrachten wir ein Beispiel, in dem wir unsere ausführen möchten Testfall im Internet Explorer-Browser, um www.g zu öffnenmail.com-Website mit Selenium Webdriver.

Following ist der Code.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {
  
WebDriver driver = new InternetExplorerDriver();
 driver.manage().window().maximize();
 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

Führen Sie nun diesen Code aus Eclipse und schauen Sie sich die Konsole an.

Ausgang:

Es wird Folgendes werfenwing Fehler, wenn der obige Code ausgeführt wird. Der Fehler tritt auf, weil der Pfad zum Browsertreiber (im obigen Fall IE) nicht festgelegt ist. Der Browser konnte vom Selenium-Code nicht gefunden werden.

The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list

Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib

WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.

Lösung:

Die Lösung für das obige Problem finden Sie im Warnabschnitt des Fehlers selbst.

  • Laden Sie den eigenständigen Internet ExplorerDriver-Server für 32 Bit oder 64 Bit herunter.
  • Speichern Sie den Treiber an einem geeigneten Ort im System.
  • Legen Sie den Pfad für den Treiber mithilfe von fest System.setProperty Methode.
  • Es wird verwendet, um den IE-Treiber mit der Webdriver-Eigenschaft festzulegen. Es hilft, die ausführbare Treiberdatei zu finden, die am Systemspeicherort gespeichert ist. (Beispiel: „C:\IEDriverLocation\IEDriver.exe“)
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {

//it is used to define IE capability 
 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
  
capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE");
capabilities.setCapability(InternetExplorerDriver.
  INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);


System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
  
 //it is used to initialize the IE driver
 WebDriver driver = new InternetExplorerDriver(capabilities);
  
 driver.manage().window().maximize();

 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

Code-Erklärung:

Im obigen Code,

  • Mit den Importanweisungen werden die erforderlichen Pakete für den Selenium-Webtreiber, die erforderlichen Pakete für den Internet Explorer-Treiber und die Pakete für die gewünschten Funktionen importiert.
  • setCapability verwendet die verschiedenen Funktionen als Eingabevariablen, die dann vom Webtreiber verwendet werden, um die Anwendung in der gewünschten Umgebung zu starten.
  • setProperty wird verwendet, um den Pfad festzulegen, in dem sich der Treiber befindet. Web Driver findet dann den erforderlichen Treiber.
  • Gmail Die Website wird im Internet Explorer-Browser mithilfe der Methode „get“ geöffnet.

Ausgang:

Der Testfall im Internet Explorer-Browser wird mit Selenium Webdriver erfolgreich ausgeführt.

Konklusion

Die Klasse „Desired Capabilities“ hilft dabei, eine Umgebung einzurichten, um das Verhalten des Browsers/der Umgebung zu definieren, in dem der Test ausgeführt werden kann.

Es hilft, unsere Anwendung in der gewünschten Umgebung zu starten und über die Funktionen zu verfügen, die wir nutzen möchten.