Laden Sie Geckodriver herunter für Firefox & Selenium

⚡ Intelligente Zusammenfassung

GeckoDriver für Firefox und Selenium fungiert als Vermittler zwischen W3C WebDriver-Clients und Mozilla Firefox, Übersetzung von Befehlen in die MariOnette-Protokoll. Dieser Leitfaden erläutert Installation, Initialisierungstechniken, Beispielcode, häufige Ausnahmen und Vorteile der Kernkompatibilität.

  • 🦊 Brückenrolle: GeckoDriver verbindet Selenium WebDriver-Clients mit Firefox Verwendung der MariOnette-Protokoll.
  • ⬇️ Zuerst einrichten: Laden Sie den passenden GeckoDriver-Build für Ihr Betriebssystem aus dem offiziellen Mozilla-Repository herunter.
  • ⚙️ Drei Initialisierungspfade: Initialisieren Sie den Treiber über DesiredCapabilities, die Marionetteigenschaft, oder FirefoxOptionen.
  • 🧪 Beispielhafter Arbeitsablauf: Arbeiten jederzeit weiterbearbeiten können. Jede Präsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen, JUnit Annotationen wie @Before, @Test und @After ermöglichen ein sauberes Browser-Lebenszyklusmanagement.
  • Häufige Fehler beheben: Beheben Sie die Probleme „SessionNotCreated“ und „Verbindung abgelehnt“ durch Ausrichtung Firefox, Seleniumund Treiberversionen.
  • 🌐 W3C-Vorteil: Der W3C WebDriver-Standard bietet versionsübergreifende Kompatibilität und reduziert so den Wartungsaufwand für Automatisierungssuiten.

GeckoDriver rein Selenium

Was ist GeckoDriver? Selenium?

Der Begriff Gecko steht für eine in Mozilla integrierte Webbrowser-Engine. Firefox Browser. GeckoDriver fungiert als Proxy zwischen WebDriver-fähigen Clients (Eclipse, NetBeans, IntelliJ IDEAusw.) und die Mozilla Firefox Browser. Kurz gesagt, GeckoDriver dient als Bindeglied zwischen Selenium WebDriver-Tests und Mozilla Firefox.

Vorher Selenium 3, die Mozilla Firefox Browser war der Standardbrowser für Selenium. Nach Selenium 3. Die Tester müssen das Skript initialisieren, um es zu verwenden. Firefox explizit über GeckoDriver. Selenium verwendet das W3C WebDriver-Protokoll, um Anfragen an GeckoDriver zu senden, der diese in ein Protokoll namens übersetzt. MariOnette. Firefox versteht dann die Befehle transmitted in der Marionette-Protokollformat und führt sie aus.

Vorteile der Verwendung von GeckoDriver

Selenium WebDriver Version 2.53 ist nicht mit Mozilla kompatibel. Firefox Version 47.0+. Die ältere Version Firefox Treiber, der in früheren Mozilla-Versionen verwendet wurde Firefox Die Build-Funktion wurde eingestellt, und es kann heute nur noch die GeckoDriver-Implementierung verwendet werden. Tester müssen daher GeckoDriver verwenden, um automatisierte Tests auf Mozilla auszuführen. Firefox Version 47.0 und höher.

Der größte Vorteil der Verwendung von GeckoDriver gegenüber dem Vorgängersystem Firefox Fahrer ist KompatibilitätGeckoDriver basiert auf der W3C WebDriver-Protokoll kommunizieren mit SeleniumW3C ist ein universell definierter Standard für WebDriver. Das bedeutet Selenium Entwickler müssen nicht für jede Browserversion eine neue Treiberversion erstellen. Dieselbe WebDriver-Implementierung kann in verschiedenen Browserversionen verwendet werden, weshalb GeckoDriver gegenüber dem älteren Treiber bevorzugt wird. Firefox Treiber.

So laden Sie GeckoDriver herunter und installieren es Selenium

GeckoDriver wird als ausführbare Datei bereitgestellt, die direkt auf Ihr System heruntergeladen werden kann. Befolgen Sie die unten stehenden Schritte, um GeckoDriver herunterzuladen und zu installieren. Selenium Automatisierung.

Schritt 1) Wählen Sie die entsprechende Version aus.
Auf der offiziellen Veröffentlichungsseite https://github.com/mozilla/geckodriver/releasesWählen Sie den passenden GeckoDriver-Build, der zu Ihrem Betriebssystem und Ihrer Architektur passt.

Laden Sie GeckoDriver herunter und installieren Sie es Selenium

Schritt 2) Extract die ZIP-Datei.
Sobald der Download der ZIP-Datei abgeschlossen ist, z. B.tracFüge seinen Inhalt einem Ordner auf deinem Rechner hinzu.

Extract GeckoDriver ZIP-Datei

Schritt 3) Beachten Sie den Standort des Fahrers.
Notieren Sie den Ordnerpfad, in dem SietracDer Treiber wurde an dieser Stelle initialisiert. Dieser Speicherort wird später verwendet, um den Treiber aus Ihrem Testskript zu instanziieren.

GeckoDriver-Standort beachten

Möglichkeiten zur Initialisierung von GeckoDriver

Es gibt drei verschiedene Möglichkeiten, GeckoDriver in Ihrem System zu initialisieren. Selenium Testskripte. Wählen Sie dasjenige aus, das am besten zu Ihrem Testframework passt, und Selenium Version.

1. Verwendung von DesiredCapabilities

Zuerst muss die Systemeigenschaft für GeckoDriver festgelegt werden.

Syntax:

System.setProperty("webdriver.gecko.driver","Path to geckodriver.exe file");

Ejemplo:

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

Als Nächstes legen Sie die gewünschten Fähigkeiten fest. Die gewünschten Fähigkeiten helfen dabei. Selenium Ermitteln Sie Browsername, Version und Betriebssystem, die für die Ausführung der automatisierten Tests erforderlich sind. Nachfolgend finden Sie den Code zur Konfiguration von GeckoDriver 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 Marionette Property

GeckoDriver kann auch mithilfe der Marionette-Eigenschaft initialisiert werden, wie unten gezeigt.

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

Wenn GeckoDriver mit der oben genannten Methode initialisiert wird, lautet der Code für die gewünschten Fähigkeiten: kein Frontalunterricht. erforderlich.

3. Verwendung FirefoxOptionen

Mozilla Firefox Version 47+ legt die MariOnette-Treiber als Legacy-System. Dies ausnutzend, MariDer Onette-Treiber kann aufgerufen werden durch Firefox Optionen wie unten dargestellt.

FirefoxOptions options = new FirefoxOptions();
options.setLegacy(true);

Code zum Starten Firefox Verwendung von GeckoDriver

Folgende JUnitDas Beispiel zeigt ein vollständiges, ausführbares Programm. Selenium Test, der startet Firefox über GeckoDriver und navigiert zu einer Demo URL.

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 Erläuterung

@Before-Methode

Zunächst haben wir die Systemeigenschaft für GeckoDriver auf den Downloadort von geckodriver.exe gesetzt. Außerdem haben wir die Marionetteneigenschaft auf „true“ gesetzt. Selenium verwendet das Marionette-Protokoll zur Kommunikation mit GeckoDriver. Schließlich starten wir Firefox Browserinstanz, die das Objekt „Desired Capabilities“ verwendet.

Die folgenden Anweisungen bewirken diese Konfiguration.

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver = new FirefoxDriver(capabilities);

@Testmethode

Wir navigieren zum vom Benutzer angegebenen URL mit dem eingebauten get Methode bereitgestellt von Selenium WebDriver, wie unten dargestellt.

driver.get("https://demo.guru99.com/selenium/guru99home/");

@After-Methode

Schließlich schließen wir die Browserinstanz mit dem quit Methode.

driver.quit();

Ein Skript für Nicht-Geckos an Geckos anpassen

Nicht-GeckoDriver-Skripte, die zuvor verwendet wurden Selenium 3 war unkompliziert. Sie haben einfach eine Instanz von Firefox Der Treiber wurde verwendet und die Instanzvariable genutzt.

@Before
public void startBrowser() {
    driver = new FirefoxDriver();
}

Um das Skript für GeckoDriver zu konvertieren, müssen Sie lediglich eine Codezeile hinzufügen, die auf den Speicherort der Datei geckodriver.exe verweist.

@Before
public void startBrowser() {
    System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe");
    driver = new FirefoxDriver();
}

Häufige Ausnahmen bei der Verwendung von GeckoDriver

Nachfolgend finden Sie eine Liste häufiger Ausnahmen, die bei der Verwendung von GeckoDriver auftreten können, sowie deren Lösungen.

Diese Ausnahme tritt auf, wenn der Benutzer versucht, eine Instanz zu erstellen. Firefox Treiber ohne Festlegung der Systemeigenschaft für GeckoDriver. Dies tritt häufig auf bei Selenium Anfänger, die sich der eingeführten Änderungen nicht bewusst sind Selenium 3 im Vergleich zu früheren Versionen.

Die Lösung besteht darin, die Systemeigenschaft für GeckoDriver mit dem Speicherort der Datei geckodriver.exe wie unten gezeigt festzulegen.

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

Bitte beachten Sie, dass Sie die Eigenschaften von GeckoDriver 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 Die Version wurde auf die neueste Version aktualisiert. Die Lösung besteht darin, beides zu aktualisieren: Selenium Aktualisieren Sie die JAR-Datei und den GeckoDriver auf die neuesten kompatiblen Versionen und führen Sie das Skript anschließend erneut aus.

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

Diese Ausnahme tritt aufgrund von Kompatibilitätsproblemen zwischen auf Selenium und GeckoDriver. GeckoDriver funktioniert mit Firefox Version 47 oder höher. Das Problem lässt sich durch ein Upgrade beheben. Firefox Version 47 oder höher.

WebDriver Exception: Connection Refused

Diese Ausnahme tritt auf, wenn WebDriver keine Verbindung herstellen kann mit FirefoxDas Problem kann mit einer der folgenden Methoden gelöst werden.

  • Verwenden Sie die driver.quit() Methode zum Zerstören früherer Instanzen von WebDriver.
  • Leeren Sie den Browser-Cache, bevor Sie Ihre automatisierten Tests ausführen.
  • Räumen Sie den Projektarbeitsbereich innerhalb des Eclipse IDE.
  • Verwenden Sie immer die neueste Version des Selenium GeckoDriver zusammen mit dem neuesten stabilen Firefox freizugeben.

Häufig gestellte Fragen

Nein. GeckoDriver ist die Proxy-Anwendung, die den W3C WebDriver-Standard implementiert. MariOnette ist das in Onette integrierte Automatisierungsprotokoll. FirefoxGeckoDriver übersetzt WebDriver-Befehle in Marionette-Nachrichten, die Firefox ausführen kann.

Die neuesten GeckoDriver-Builds zielen offiziell darauf ab Firefox 91 ESR und neuer. Überprüfen Sie immer die GeckoDriver-Versionshinweise auf der GitHub-Seite von Mozilla, um die Mindest- und Maximalanforderungen zu bestätigen. Firefox Von Ihrer heruntergeladenen Version unterstützte Versionen.

Das Hinzufügen von GeckoDriver zum Systempfad (PATH) ist optional, aber praktisch. Befindet sich GeckoDriver im PATH, kann der Aufruf von System.setProperty übersprungen werden. Andernfalls muss der Treiberpfad explizit in der Konfiguration angegeben werden. Selenium Testskript.

Ja. KI-gestützte Testwerkzeuge können generieren Selenium WebDriver-Code, Vorschläge für Locators und die automatische Behebung fehlerhafter Skripte beschleunigen Routinearbeiten, aber die manuelle Überprüfung von Treiberversionen, Wartezeiten und Assertions ist für zuverlässige Ergebnisse weiterhin erforderlich. Firefox Automatisierung.

Nein. KI-Agenten nutzen derzeit WebDriver-Protokolle, anstatt sie zu ersetzen. GeckoDriver bleibt die Brücke zu ihnen. FirefoxWährend KI-Ebenen über den bestehenden Standard hinaus intelligentere Ortungsfunktionen, Selbstheilungsmechanismen und die Erstellung von Tests in natürlicher Sprache hinzufügen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: