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.

GeckoDriver rein Selenium

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

Laden Sie GeckoDriver herunter und installieren Sie es Selenium

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

Laden Sie GeckoDriver herunter und installieren Sie es Selenium

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.

Laden Sie GeckoDriver herunter und installieren Sie es Selenium

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.

Diese Ausnahme tritt auf, wenn der Benutzer versucht, eine Instanz zu erstellen Firefox Treiber, ohne die Systemeigenschaft für den Gecko-Treiber festzulegen. Dies wird normalerweise von Anfängern durchgeführt Selenium denen die vorgenommenen Änderungen nicht bekannt sind Selenium 3 zu Selenium vorherige Versionen.

Die Lösung für die oben genannte Ausnahme besteht darin, die Systemeigenschaft für den Gecko-Treiber mit dem Speicherort der Datei „geckodriver.exe“ wie folgt festzulegen

System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\geckodriver.exe");

Bitte beachten Sie, dass Sie die Eigenschaft des Gecko-Treibers festlegen müssen, bevor Sie eine Instanz von Mozilla erstellen Firefox Treiber.

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.

Diese Ausnahme tritt normalerweise auf, wenn Firefox Version wurde auf die neueste Version aktualisiert. Die Lösung für diese Ausnahme besteht darin, die Selenium-JAR-Datei und den Gecko-Treiber auf die neueste Version zu aktualisieren und diese zu verwenden.

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session.

Diese Ausnahme tritt aufgrund von Kompatibilitätsproblemen zwischen auf Selenium und Gecko-Fahrer. Gecko-Treiber funktioniert mit Firefox Version 47 oder höher. Es kann durch ein Update behoben werden Firefox Version auf 47 oder höher.

WebDriver Exception: Connection Refused

Bei dieser Ausnahme handelt es sich um die Meldung, die generiert wird, wenn der Webtreiber keine Verbindung herstellen kann Firefox. Das Problem kann mit einer der folgenden Techniken behoben werden.

  • Nutzen Sie driver.quit() Methode zum Zerstören früherer Instanzen des Webtreibers
  • Bereinigen Sie den Browser-Cache, bevor Sie Ihre automatisierten Tests ausführen
  • Bereinigen Sie den darin enthaltenen Projektarbeitsbereich Eclipse IDE
  • Verwenden Sie immer die neueste Version des Selenium Gecko-Treibers und die neueste Version von Firefox Browser

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.