Last ned Geckodriver for Firefox & Selenium

โšก Smart oppsummering

GeckoDriver for Firefox og Selenium fungerer som en proxy mellom W3C WebDriver-klienter og Mozilla Firefox, oversette kommandoer til Marionette-protokollen. Denne veiledningen forklarer installasjon, initialiseringsteknikker, eksempelkode, vanlige unntak og fordeler med kjernekompatibilitet.

  • ๐ŸฆŠ Brorolle: GeckoDriver kobler til Selenium WebDriver-klienter med Firefox bruker Marionette-protokollen.
  • โฌ‡๏ธ Oppsett fรธrst: Last ned den riktige GeckoDriver-versjonen fra det offisielle Mozilla-arkivet for operativsystemet ditt.
  • โš™๏ธ Tre init-stier: Initialiser driveren gjennom DesiredCapabilities, marionette-systemegenskapen, eller FirefoxAlternativer.
  • ๐Ÿงช Eksempel pรฅ arbeidsflyt: Bruk JUnit merknader som @Fรธr, @Test og @Etter for รฅ administrere nettleserens livssyklus pรฅ en ryddig mรฅte.
  • ๐Ÿ› ๏ธ Rett opp vanlige feil: Lรธs problemer med SessionNotCreated og tilkoblingsavslag ved รฅ justere Firefox, Seleniumog driverversjoner.
  • ๐ŸŒ W3C-fordel: W3C WebDriver-standarden gir kompatibilitet pรฅ tvers av versjoner, noe som reduserer vedlikehold for automatiseringspakker.

GeckoDriver inn Selenium

Hva er GeckoDriver i Selenium?

Begrepet Gecko stรฅr for en nettlesermotor innebygd i Mozilla Firefox nettleser. GeckoDriver fungerer som en proxy mellom WebDriver-aktiverte klienter (Eclipse, NetBeans, IntelliJ IDEAosv.) og Mozilla Firefox nettleser. Kort sagt fungerer GeckoDriver som en kobling mellom Selenium WebDriver-tester og Mozilla Firefox.

Fรธr Selenium 3, Mozilla Firefox nettleser var standard nettleser for Selenium. Etter Selenium 3, testere mรฅ initialisere skriptet for รฅ bruke det Firefox eksplisitt gjennom GeckoDriver. Selenium bruker W3C WebDriver-protokollen til รฅ sende forespรธrsler til GeckoDriver, som oversetter dem til en protokoll kalt Marionette. Firefox forstรฅr deretter kommandoene transmitted i Marionette-protokollformatet og kjรธrer dem.

Fordeler med รฅ bruke GeckoDriver

Selenium WebDriver versjon 2.53 er ikke kompatibel med Mozilla Firefox versjon 47.0+. Arven Firefox driveren som ble brukt i tidligere Mozilla-programmer Firefox builds har blitt avviklet, og bare GeckoDriver-implementasjonen kan brukes i dag. Testere er derfor pรฅlagt รฅ bruke GeckoDriver for รฅ kjรธre automatiserte tester pรฅ Mozilla. Firefox versjon 47.0 og nyere.

Den stรธrste fordelen med รฅ bruke GeckoDriver fremfor den eldre versjonen Firefox sjรฅfรธren er kompatibilitetGeckoDriver er avhengig av W3C WebDriver-protokoll รฅ kommunisere med SeleniumW3C er en universelt definert standard for WebDriver. Dette betyr Selenium Utviklere trenger ikke รฅ opprette en ny driverversjon for hver nettleserversjon. Den samme WebDriver-implementeringen kan brukes pรฅ tvers av flere nettleserversjoner, og det er derfor GeckoDriver foretrekkes fremfor den eldre. Firefox sjรฅfรธr.

Hvordan laste ned og installere GeckoDriver i Selenium

GeckoDriver distribueres som en kjรธrbar fil som kan lastes ned direkte til systemet ditt. Fรธlg trinnene nedenfor for รฅ laste ned og installere GeckoDriver for Selenium automasjon.

Trinn 1) Velg riktig versjon.
Pรฅ den offisielle utgivelsessiden https://github.com/mozilla/geckodriver/releases, velg den passende GeckoDriver-versjonen som samsvarer med operativsystemet og arkitekturen din.

Last ned og installer GeckoDriver i Selenium

Trinn 2) Extract ZIP-filen.
Nรฅr nedlastingen av ZIP-filen er fullfรธrt, f.eks.tracLegg innholdet i en mappe pรฅ maskinen din.

Extract GeckoDriver ZIP-fil

Trinn 3) Legg merke til fรธrerens plassering.
Noter mappebanen der du eksistertetraclastet driveren. Denne plasseringen vil bli brukt senere til รฅ instansiere driveren fra testskriptet ditt.

Merk GeckoDriver-plasseringen

Mรฅter รฅ initialisere GeckoDriver pรฅ

Det finnes tre forskjellige mรฅter รฅ initialisere GeckoDriver pรฅ i din Selenium testskript. Velg det som passer best til testrammeverket ditt og Selenium versjon.

1. Bruke DesiredCapabilities

Fรธrst angir du systemegenskapen for GeckoDriver.

Syntaks:

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

Eksempel:

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

Deretter angir du รธnskede funksjoner. Hjelp med รธnskede funksjoner Selenium forstรฅ nettlesernavnet, versjonen og operativsystemet som kreves for รฅ kjรธre de automatiserte testene. Nedenfor finner du koden for รฅ konfigurere GeckoDriver ved hjelp av DesiredCapabilities-klassen.

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

Her er hele koden:

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

2. Ved hjelp av Marionette-eiendom

GeckoDriver kan ogsรฅ initialiseres ved hjelp av marionette-egenskapen som vist nedenfor.

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

Hvis GeckoDriver initialiseres ved hjelp av metoden ovenfor, er koden for รธnskede funksjoner ikke pรฅkrevd.

3. Ved hjelp av Firefoxalternativer

Mozilla Firefox versjon 47+ avslรธrer Marionette-driveren som et eldre system. Ved รฅ dra nytte av dette, Marionette-driveren kan pรฅkalles gjennom Firefox Alternativer som vist nedenfor.

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

Code for lansering Firefox Bruk av GeckoDriver

Fรธlgende JUnit-basert eksempel viser et komplett, kjรธrbart Selenium test som starter Firefox gjennom 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-metoden

I utgangspunktet satte vi systemegenskapen for GeckoDriver til nedlastingsplasseringen for geckodriver.exe. Vi satte ogsรฅ marionette-egenskapen til sann, slik at Selenium bruker Marionette-protokollen for รฅ kommunisere med GeckoDriver. Til slutt starter vi Firefox nettleserinstans ved hjelp av Desired Capabilities-objektet.

Fรธlgende utsagn oppnรฅr dette oppsettet.

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

@Testmetode

Vi navigerer til det brukerspesifiserte URL ved hjelp av den innebygde get metode levert av Selenium WebDriver, som vist nedenfor.

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

@Etter metoden

Til slutt lukker vi nettleserinstansen ved hjelp av quit metoden.

driver.quit();

Endre et skript for ikke-gekko til gekko

Ikke-GeckoDriver-skript brukt fรธr Selenium 3 var enkle. Du opprettet ganske enkelt en instans av Firefox driveren og brukte instansvariabelen.

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

For รฅ konvertere skriptet for GeckoDriver trenger du bare รฅ legge til รฉn linje med kode som peker til geckodriver.exe-plasseringen.

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

Vanlige unntak oppsto ved bruk av GeckoDriver

Fรธlgende er en liste over vanlige unntak som oppstรฅr nรฅr du bruker GeckoDriver, sammen med lรธsningene deres.

Dette unntaket oppstรฅr nรฅr brukeren prรธver รฅ instansiere Firefox driver uten รฅ angi systemegenskapen for GeckoDriver. Det sees ofte med Selenium nybegynnere som ikke er klar over endringene som er introdusert i Selenium 3 sammenlignet med tidligere versjoner.

Lรธsningen er รฅ angi systemegenskapen for GeckoDriver med plasseringen av geckodriver.exe-filen som vist nedenfor.

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

Vรฆr oppmerksom pรฅ at du mรฅ angi egenskapen til GeckoDriver fรธr du oppretter en instans av Mozilla. Firefox sjรฅfรธr.

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

Dette unntaket forekommer vanligvis nรฅr Firefox versjonen har blitt oppgradert til nyeste utgivelse. Lรธsningen er รฅ oppdatere bรฅde Selenium JAR-filen og GeckoDriver til de nyeste kompatible versjonene, og kjรธr deretter skriptet pรฅ nytt.

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

Dette unntaket oppstรฅr pรฅ grunn av kompatibilitetsproblemer mellom Selenium og GeckoDriver. GeckoDriver fungerer med Firefox versjon 47 eller nyere. Problemet kan lรธses ved รฅ oppgradere Firefox versjon 47 eller hรธyere.

WebDriver Exception: Connection Refused

Dette unntaket vises nรฅr WebDriver ikke kan opprette en forbindelse med FirefoxDet kan lรธses ved hjelp av en av fรธlgende teknikker.

  • Bruke driver.quit() metode for รฅ รธdelegge tidligere forekomster av WebDriver.
  • Rengjรธr nettleserens hurtigbuffer fรธr du kjรธrer de automatiserte testene.
  • Rengjรธr prosjektarbeidsomrรฅdet i Eclipse SDI.
  • Bruk alltid den nyeste versjonen av Selenium GeckoDriver sammen med den nyeste stabile versjonen Firefox slipp.

Spรธrsmรฅl og svar

Nei. GeckoDriver er den kjรธrbare proxy-filen som implementerer W3C WebDriver-standarden. Marionette er automatiseringsprotokollen som er innebygd i FirefoxGeckoDriver oversetter WebDriver-kommandoer til Marionette-meldinger som Firefox kan utfรธre.

De nyeste GeckoDriver-byggene retter seg offisielt mot Firefox 91 ESR og nyere. Sjekk alltid GeckoDriver-utgivelsesnotatene pรฅ Mozillas GitHub-side for รฅ bekrefte minimums- og maksimumsverdiene. Firefox versjoner som stรธttes av den nedlastede versjonen din.

Det er valgfritt, men praktisk รฅ legge til GeckoDriver i systembanen. Hvis den er pรฅ PATH, kan du hoppe over System.setProperty-kallet. Ellers mรฅ du spesifisere driverbanen eksplisitt i din Selenium testskript.

Ja. AI-assisterte testverktรธy kan generere Selenium WebDriver-kode, foreslรฅ lokatorer og automatisk reparasjon av ustabile skript. De fremskynder rutinearbeidet, men menneskelig gjennomgang av driverversjoner, ventinger og pรฅstander er fortsatt nรธdvendig for pรฅlitelige Firefox automasjon.

Nei. AI-agenter sitter for tiden oppรฅ WebDriver-protokollene i stedet for รฅ erstatte dem. GeckoDriver er fortsatt broen til Firefox, mens AI-lag legger til smartere lokaliseringsfunksjoner, selvreparasjon og testutvikling pรฅ naturlig sprรฅk i tillegg til den eksisterende standarden.

Oppsummer dette innlegget med: