Gewünschte Fähigkeiten in Selenium WebTreiber

Was sind gewünschte Fähigkeiten?

Gewünschte Fähigkeiten ist eine Klasse in Selenium Wird verwendet, um Eigenschaften von Browsern festzulegen, 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 verwendet werden Selenium WebDriver.
  • 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.

Die setCapability-Methode der DesiredCapabilities-Klasse, die im späteren Teil des Tutorials erklärt wird, kann verwendet werden in Selenium Netz. Es wird verwendet, um eine parallele Ausführung auf verschiedenen Maschinenkonfigurationen durchzuführen.

Beispiel: Gitter

Gewünschte Fähigkeiten in Selenium WebTreiber

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 führen wir die Tests auf verschiedenen Arten mobiler Geräte durch, wobei die mobile Plattform (z. B. iOS, Android) Plattformversion (Bsp. 3.x, 4.x in Android) kann eingestellt werden.

Gewünschte Fähigkeiten in Selenium WebTreiber

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.
  • In Selenium Raster, wenn wir die Testfälle auf 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

Die setCapability()-Methode der Desired Capabilities-Klasse 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 Android getestete App), App-Aktivität (in Android) und appPackage(in Java).

„setCapability-Methode“ in Java 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 fest Selenium Beispiel

Betrachten wir ein Beispiel, in dem wir unsere ausführen möchten Testfall im Internet Explorer-Browser, um die Website www.gmail.com mit Selenium Webtreiber.

Nachfolgend 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:

Beim Ausführen des obigen Codes wird der folgende Fehler ausgegeben. 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.

Die 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,

  • Die Importanweisungen dienen zum Importieren der erforderlichen Pakete für den Selenium-Webtreiber, der erforderlichen Pakete für den Internet Explorer-Treiber und der Pakete für die gewünschten Funktionen.
  • 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.
  • Die Gmail-Website wird im Internet Explorer-Browser mit der Methode „get“ geöffnet.

Ausgang:

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

Fazit

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.