Laden Sie Geckodriver herunter für Firefox & Selenium
Was ist GeckoDriver? Selenium?
Der Begriff Gecko steht für eine in Mozilla integrierte Webbrowser-Engine Firefox Browser. Der Gecko-Treiber fungiert als Proxy zwischen Clients mit aktiviertem Web-Treiber (Eclipse, Netbeans usw.) und Mozilla Firefox Browser. Kurz gesagt, der Gecko-Treiber fungiert als Bindeglied zwischen Selenium Web-Treibertests und Mozilla Firefox Browser.
Vorher Selenium 3, Mozilla Firefox Browser war der Standardbrowser für Selenium. Nach Selenium 3. Tester müssen das zu verwendende Skript initialisieren Firefox explizite Verwendung von GeckoDriver. Selenium verwendet das W3C-Webdriver-Protokoll, um Anfragen an GeckoDriver zu senden, der sie in ein Protokoll mit dem Namen übersetzt MariOnette. Firefox wird die in Form von übermittelten Befehle verstehen Marionette-Protokoll und führt sie aus.
So laden Sie GeckoDriver herunter und installieren es Selenium
Der Gecko-Treiber ist als ausführbare Datei verfügbar, die auf das System heruntergeladen werden kann. Nachfolgend finden Sie die Schritte zum Herunterladen des Gecko-Treibers.
Schritt 1 ) Wählen Sie die entsprechende Version aus.
Auf dieser Seite https://github.com/mozilla/geckodriver/releases ,Wählen Sie die entsprechende Version für den GeckoDriver-Download basierend auf Ihrem Betriebssystem
Schritt 2) Entpacken Sie die ZIP-Datei.
Sobald der Download der ZIP-Datei abgeschlossen ist, extrahieren Sie den Inhalt der ZIP-Datei in einen Dateiordner
Schritt 3) Beachten Sie den Standort.
Notieren Sie sich den Speicherort, an dem Sie den Treiber extrahiert haben. Der Speicherort wird später zum Instanziieren des Treibers verwendet.
Möglichkeiten zum Initialisieren von GeckoDriver
Es gibt drei verschiedene Möglichkeiten, GeckoDriver zu initialisieren.
1. Verwendung von DesiredCapabilities
Legen Sie zunächst die Systemeigenschaft für Gecko Driver fest.
Syntax:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
Ejemplo:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Als nächstes legen Sie die gewünschten Fähigkeiten fest.
Gewünschte Fähigkeiten helfen Selenium um den Browsernamen, die Version und das Betriebssystem zu verstehen, um die automatisierten Tests auszuführen. Unten finden Sie den Code zum Einstellen des Gecko-Treibers mithilfe der Klasse DesiredCapabilities.
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true);
Hier ist der vollständige Code
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
2. Verwendung von Marionetteneigentum
Der Gecko-Treiber kann auch mit der Marionette-Eigenschaft wie unten initialisiert werden
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Wenn der Gecko-Treiber mit der oben genannten Methode initialisiert wird, ist der Code für die gewünschten Funktionen vorhanden nicht erforderlich.
3. Verwendung FirefoxOptionen
Mozilla Firefox Version 47+ hat Marionette Driver als Legacy-System. Aus diesem Grund kann Marionette Driver aufgerufen werden mit Firefox Optionen wie unten
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Code zum Starten von Firefox mit dem Gecko-Treiber
package com.guru99.demo; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class GeckoDriverDemo { String driverPath = "D:\\Guru99Demo\\GeckoDriver.exe"; public WebDriver driver; @Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); driver = new FirefoxDriver(capabilities); } @Test public void navigateToUrl() { driver.get("https://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } }
Code Erklärung
@Before-Methode
Zunächst müssen wir die Systemeigenschaft für den Gecko-Treiber auf den Download-Speicherort der geckdriver.exe-Datei setzen. Wir müssen die Marionette-Eigenschaft auf true setzen für Selenium benutzen MariOnette-Protokoll zur Kommunikation mit Gecko Driver. Schließlich müssen wir mit dem beginnen Firefox Browserinstanz, die das Objekt für gewünschte Funktionen verwendet.
Die folgenden Aussagen helfen, die oben genannte Aufgabe zu lösen.
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
@Testmethode
Wir navigieren zur vom Benutzer angegebenen URL mithilfe der integrierten Methode „get“, die von bereitgestellt wird Selenium Web-Treiber. Die folgende Erklärung hilft dabei, dasselbe zu erreichen.
driver.get("https://demo.guru99.com/selenium/guru99home/");
@After-Methode
Zum Schluss schließen wir die Browserinstanz mit der Quit-Methode.
driver.quit();
Ändern Sie ein Skript für Nicht-Gecko in Gecko
Zuvor verwendetes Nicht-Gecko-Treiberskript Selenium 3 war unkompliziert. Wir müssen eine Instanz von erstellen Firefox Treiber und verwenden Sie die Instanzvariable.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
Um in Gecko zu konvertieren, müssen Sie lediglich eine Codezeile hinzufügen
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
Bei der Verwendung des Gecko-Treibers traten häufige Ausnahmen auf
Nachfolgend finden Sie eine Liste häufiger Ausnahmen, die bei der Verwendung und Lösung von Gecko Driver auftreten.
Vorteil der Verwendung von Gecko Driver
Selenium Webdriver Version 2.53 ist nicht mit Mozilla kompatibel Firefox Version 47.0+. Der Firefox Treiber, der in früheren Versionen von Mozilla verwendet wurde Firefox wird eingestellt und es wird nur noch die GeckoDriver-Implementierung verwendet. Daher sind Tester gezwungen, GeckoDriver zu verwenden, wenn sie automatisierte Tests auf Mozilla ausführen möchten Firefox Version 47.0+. Aber die große Frage – was ist der Vorteil?
Der Hauptvorteil der Verwendung von GeckoDriver gegenüber der Standardversion Firefox Fahrer ist Kompatibilität. GeckoDriver verwendet W3C WebDriver-Protokoll kommunizieren mit Selenium. W3C ist ein allgemein definierter Standard für Web Driver. Das heisst Selenium Entwickler (Leute, die programmieren Selenium base) muss nicht für jede Browserversion eine neue Version von Web Driver erstellen. Derselbe Webtreiber kann für mehrere Browserversionen verwendet werden. Daher wird GeckoDriver gegenüber der früheren Implementierung von bevorzugt Firefox Treiber.