Download Geckodriver til Firefox & Selenium

โšก Smart opsummering

GeckoDriver til Firefox og Selenium fungerer som en proxy mellem W3C WebDriver-klienter og Mozilla Firefox, oversรฆttelse af kommandoer til Marionette-protokollen. Denne vejledning forklarer installation, initialiseringsteknikker, eksempelkode, almindelige undtagelser og fordele ved kernekompatibilitet.

  • ๐ŸฆŠ Broens rolle: GeckoDriver forbinder Selenium WebDriver-klienter med Firefox ved hjรฆlp af Marionette-protokol.
  • โฌ‡๏ธ Opsรฆtning fรธrst: Download den korrekte GeckoDriver-version fra det officielle Mozilla-arkiv til dit operativsystem.
  • ๐Ÿ‡ง๐Ÿ‡ท Tre init-stier: Initialiser driveren via DesiredCapabilities, marionette-systemegenskaben eller FirefoxValg.
  • ๐Ÿงช Eksempel pรฅ arbejdsgang: Brug JUnit annoteringer som @Fรธr, @Test og @Efter for at administrere browserens livscyklus overskueligt.
  • ๐Ÿ› ๏ธ Ret almindelige fejl: Lรธs problemer med SessionNotCreated og forbindelsesafviste systemer ved at justere dem. Firefox, Seleniumog driverversioner.
  • ๐ŸŒ W3C-fordel: W3C WebDriver-standarden leverer kompatibilitet pรฅ tvรฆrs af versioner, hvilket reducerer vedligeholdelsen af โ€‹โ€‹automatiseringspakker.

GeckoDriver ind Selenium

Hvad er GeckoDriver i Selenium?

Udtrykket Gecko stรฅr for en webbrowser-motor, der er indbygget i Mozilla. Firefox browser. GeckoDriver fungerer som en proxy mellem WebDriver-aktiverede klienter (Eclipse, NetBeans, IntelliJ IDEAosv.) og Mozilla Firefox browser. Kort sagt fungerer GeckoDriver som et link mellem Selenium WebDriver-tests og Mozilla Firefox.

Fรธr Selenium 3, Mozilla Firefox browser var standardbrowseren for Selenium. Efter Selenium 3, testere skal initialisere scriptet for at bruge det Firefox eksplicit gennem GeckoDriver. Selenium bruger W3C WebDriver-protokollen til at sende anmodninger til GeckoDriver, som oversรฆtter dem til en protokol med navnet Marionette. Firefox forstรฅr derefter kommandoerne transmitted i Marionette-protokolformatet og udfรธrer dem.

Fordele ved at bruge GeckoDriver

Selenium WebDriver version 2.53 er ikke kompatibel med Mozilla Firefox version 47.0+. Arven Firefox driver brugt i tidligere Mozilla Firefox builds er udgรฅet, og kun GeckoDriver-implementeringen kan bruges i dag. Testere skal derfor bruge GeckoDriver til at kรธre automatiserede tests pรฅ Mozilla. Firefox version 47.0 og nyere.

Den stรธrste fordel ved at bruge GeckoDriver i forhold til den รฆldre version Firefox chauffรธren er kompatibilitetGeckoDriver er afhรฆngig af W3C WebDriver protokol at kommunikere med SeleniumW3C er en universelt defineret standard for WebDriver. Det betyder Selenium Udviklere behรธver ikke at oprette en ny driverversion for hver browserudgivelse. Den samme WebDriver-implementering kan bruges pรฅ tvรฆrs af flere browserversioner, hvilket er grunden til, at GeckoDriver foretrรฆkkes frem for den รฆldre. Firefox chauffรธr.

Sรฅdan downloades og installeres GeckoDriver i Selenium

GeckoDriver distribueres som en eksekverbar fil, der kan downloades direkte til dit system. Fรธlg nedenstรฅende trin for at downloade og installere GeckoDriver til Selenium automatisering.

Trin 1) Vรฆlg den relevante version.
Pรฅ den officielle udgivelsesside https://github.com/mozilla/geckodriver/releases, vรฆlg den passende GeckoDriver-version, der matcher dit operativsystem og din arkitektur.

Download og installer GeckoDriver i Selenium

Trin 2) ExtracZIP-filen.
Nรฅr download af ZIP-filen er fรฆrdig, f.eks.tracgem dens indhold i en mappe pรฅ din maskine.

Extract GeckoDriver ZIP-fil

Trin 3) Bemรฆrk fรธrerens placering.
Notรฉr stien til mappen, hvor du hartracdownloadede driveren. Denne placering vil senere blive brugt til at instantiere driveren fra dit testscript.

Bemรฆrk GeckoDriver-placering

Mรฅder at initialisere GeckoDriver pรฅ

Der er tre forskellige mรฅder at initialisere GeckoDriver pรฅ i din Selenium testscripts. Vรฆlg det, der bedst passer til dit testframework, og Selenium version.

1. Brug af DesiredCapabilities

Fรธrst skal du indstille systemegenskaben for GeckoDriver.

Syntaks:

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

Eksempel:

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

Dernรฆst skal du indstille de รธnskede egenskaber. Hjรฆlp til de รธnskede egenskaber Selenium Forstรฅ browsernavnet, versionen og operativsystemet, der krรฆves for at udfรธre de automatiserede tests. Nedenfor er koden til at konfigurere GeckoDriver ved hjรฆlp af DesiredCapabilities-klassen.

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);

Her er den komplette kode:

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

2. Ved brug af Marionette Ejendom

GeckoDriver kan ogsรฅ initialiseres ved hjรฆlp af marionette-egenskaben som vist nedenfor.

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

Hvis GeckoDriver initialiseres ved hjรฆlp af ovenstรฅende metode, er koden for รธnskede funktioner ikke krรฆves.

3. Ved brug af FirefoxIndstillinger

Mozilla Firefox version 47+ afslรธrer Marionette-driveren som et รฆldre system. Ved at udnytte dette, Marionette-driveren kan kaldes via Firefox Valgmuligheder som vist nedenfor.

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

Code til lancering Firefox Brug af GeckoDriver

Fรธlgende JUnit-baseret eksempel viser et komplet, kรธrbart Selenium test, der starter Firefox gennem GeckoDriver og navigerer til en 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 Forklaring

@Fรธr metode

I starten satte vi systemegenskaben for GeckoDriver til downloadplaceringen for geckodriver.exe. Vi satte ogsรฅ marionette-egenskaben til sand, sรฅ Selenium anvender Marionette-protokol til at kommunikere med GeckoDriver. Endelig starter vi Firefox browserinstans ved hjรฆlp af objektet Desired Capabilities.

Fรธlgende udsagn opnรฅr denne opsรฆtning.

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

@Testmetode

Vi navigerer til den brugerdefinerede URL ved hjรฆlp af den indbyggede get metode leveret af Selenium WebDriver, som vist nedenfor.

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

@Efter metode

Til sidst lukker vi browserinstansen ved hjรฆlp af quit fremgangsmรฅde.

driver.quit();

ร†ndre et script for ikke-gecko til gecko

Ikke-GeckoDriver-scripts brugt fรธr Selenium 3 var ligetil. Du oprettede blot en instans af Firefox driveren og brugte instansvariablen.

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

For at konvertere scriptet til GeckoDriver skal du kun tilfรธje รฉn linje kode, der peger pรฅ geckodriver.exe-placeringen.

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

Almindelige undtagelser opstod under brug af GeckoDriver

Fรธlgende er en liste over almindelige undtagelser, der opstรฅr, nรฅr du bruger GeckoDriver, sammen med deres lรธsninger.

Denne undtagelse opstรฅr, nรฅr brugeren forsรธger at instantiere Firefox driver uden at indstille systemegenskaben for GeckoDriver. Det ses ofte med Selenium nybegyndere, der ikke er klar over de รฆndringer, der er indfรธrt i Selenium 3 sammenlignet med tidligere versioner.

Lรธsningen er at indstille systemegenskaben for GeckoDriver med placeringen af โ€‹โ€‹geckodriver.exe-filen som vist nedenfor.

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

Bemรฆrk venligst, at du skal indstille egenskaben for GeckoDriver, fรธr du opretter en instans af Mozilla. Firefox chauffรธr.

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

Denne undtagelse forekommer normalt, nรฅr Firefox versionen er blevet opgraderet til den seneste udgivelse. Lรธsningen er at opdatere bรฅde Selenium JAR-filen og GeckoDriver til de seneste kompatible versioner, og kรธr derefter scriptet igen.

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

Denne undtagelse opstรฅr pรฅ grund af kompatibilitetsproblemer mellem Selenium og GeckoDriver. GeckoDriver arbejder med Firefox version 47 eller nyere. Problemet kan lรธses ved at opgradere Firefox version 47 eller nyere.

WebDriver Exception: Connection Refused

Denne undtagelse opstรฅr, nรฅr WebDriver ikke kan oprette forbindelse til FirefoxDet kan lรธses ved hjรฆlp af en af โ€‹โ€‹fรธlgende teknikker.

  • Brug driver.quit() metode til at รธdelรฆgge tidligere instanser af WebDriver.
  • Rens browserens cache, fรธr du udfรธrer dine automatiserede tests.
  • Rengรธr projektarbejdsomrรฅdet indenfor Eclipse SDI.
  • Brug altid den nyeste version af Selenium GeckoDriver sammen med den seneste stabile version Firefox frigive.

Ofte Stillede Spรธrgsmรฅl

Nej. GeckoDriver er den proxy-eksekverbare fil, der implementerer W3C WebDriver-standarden. Marionette er den automatiseringsprotokol, der er indbygget i FirefoxGeckoDriver oversรฆtter WebDriver-kommandoer til Marionette-beskeder, der Firefox kan udfรธre.

De seneste GeckoDriver-builds er officielt rettet mod Firefox 91 ESR og nyere. Tjek altid GeckoDriver-udgivelsesnoterne pรฅ Mozillas GitHub-side for at bekrรฆfte minimums- og maksimumsvรฆrdierne. Firefox versioner, der understรธttes af din downloadede build.

Det er valgfrit, men praktisk at tilfรธje GeckoDriver til systemets PATH. Hvis den er pรฅ PATH, kan du springe System.setProperty-kaldet over. Ellers skal du angive driverstien eksplicit i din Selenium testscript.

Ja. AI-assisterede testvรฆrktรธjer kan generere Selenium WebDriver-kode, foreslรฅr lokatorer og automatisk reparation af ustabile scripts. De fremskynder rutinearbejdet, men menneskelig gennemgang af driverversioner, ventetider og assertions er stadig pรฅkrรฆvet for pรฅlidelige Firefox automatisering.

Nej. AI-agenter sidder i รธjeblikket oven pรฅ WebDriver-protokoller i stedet for at erstatte dem. GeckoDriver er fortsat broen til Firefox, mens AI-lag tilfรธjer smartere lokaliseringsfunktioner, selvreparation og testudarbejdelse i naturligt sprog oven i den eksisterende standard.

Opsummer dette indlรฆg med: