Ladda ner Geckodriver för Firefox & Selenium

⚡ Smart sammanfattning

GeckoDriver för Firefox och Selenium fungerar som en proxy mellan W3C WebDriver-klienter och Mozilla Firefox, översätter kommandon till Marionette-protokollet. Den här guiden förklarar installation, initialiseringstekniker, exempelkod, vanliga undantag och fördelar med kärnkompatibilitet.

  • 🦊 Broens roll: GeckoDriver ansluter Selenium WebDriver-klienter med Firefox med Marionette-protokollet.
  • ⬇️ Först konfigurera: Ladda ner rätt GeckoDriver-version från det officiella Mozilla-arkivet för ditt operativsystem.
  • ⚙️ Tre init-sökvägar: Initiera drivrutinen via DesiredCapabilities, systemegenskapen för marionette, eller FirefoxAlternativ.
  • 🧪 Exempel på arbetsflöde: Använda JUnit annoteringar som @Före, @Test och @Efter för att hantera webbläsarens livscykel på ett tydligt sätt.
  • 🛠️ Åtgärda vanliga fel: Lös problem med SessionNotCreated och anslutningsvägrad genom att justera Firefox, Seleniumoch drivrutinsversioner.
  • 🌐 W3C-fördel: W3C WebDriver-standarden ger kompatibilitet mellan versioner, vilket minskar underhållet för automationssviter.

GeckoDriver in Selenium

Vad är GeckoDriver i Selenium?

Termen Gecko står för en webbläsarmotor inbyggd i Mozilla. Firefox webbläsare. GeckoDriver fungerar som en proxy mellan WebDriver-aktiverade klienter (Eclipse, NetBeans, IntelliJ IDEA, etc.) och Mozilla Firefox webbläsare. Kort sagt fungerar GeckoDriver som en länk mellan Selenium WebDriver-tester och Mozilla Firefox.

Innan Selenium 3, Mozilla Firefox webbläsare var standardwebbläsaren för Selenium. Efter Selenium 3, testare måste initiera skriptet för att använda Firefox explicit genom GeckoDriver. Selenium använder W3C WebDriver-protokollet för att skicka förfrågningar till GeckoDriver, som översätter dem till ett protokoll med namnet Marionette. Firefox förstår sedan kommandona transmitted i Marionette-protokollformatet och kör dem.

Fördel med att använda GeckoDriver

Selenium WebDriver version 2.53 är inte kompatibel med Mozilla Firefox version 47.0+. Arvet Firefox drivrutin som användes i tidigare Mozilla Firefox versioner har upphört, och endast GeckoDriver-implementeringen kan användas idag. Testare måste därför använda GeckoDriver för att köra automatiserade tester på Mozilla. Firefox version 47.0 och senare.

Den största fördelen med att använda GeckoDriver jämfört med den äldre versionen Firefox föraren är kompatibilitetGeckoDriver förlitar sig på W3C WebDriver-protokoll att kommunicera med SeleniumW3C är en universellt definierad standard för WebDriver. Detta innebär Selenium Utvecklare behöver inte skapa en ny drivrutinsversion för varje webbläsarversion. Samma WebDriver-implementering kan användas i flera webbläsarversioner, vilket är anledningen till att GeckoDriver är att föredra framför den äldre. Firefox förare.

Hur man laddar ner och installerar GeckoDriver i Selenium

GeckoDriver distribueras som en körbar fil som kan laddas ner direkt till ditt system. Följ stegen nedan för att ladda ner och installera GeckoDriver för Selenium automatisering.

Steg 1) Välj lämplig version.
På den officiella utgivningssidan https://github.com/mozilla/geckodriver/releases, välj lämplig GeckoDriver-version som matchar ditt operativsystem och din arkitektur.

Ladda ner och installera GeckoDriver i Selenium

Steg 2) Extract ZIP-filen.
När nedladdningen av ZIP-filen är klar, t.ex.traclägga in dess innehåll i en mapp på din maskin.

Extract GeckoDriver ZIP-fil

Steg 3) Notera förarens plats.
Anteckna mappsökvägen dit du ex.tracladdade drivrutinen. Den här platsen kommer att användas senare för att instansiera drivrutinen från ditt testskript.

Observera GeckoDriver-platsen

Sätt att initiera GeckoDriver

Det finns tre olika sätt att initiera GeckoDriver i din Selenium testskript. Välj det som bäst passar ditt testramverk och Selenium versionen.

1. Använda DesiredCapabilities

Ställ först in systemegenskapen för GeckoDriver.

Syntax:

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

Exempel:

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

Ställ sedan in önskade funktioner. Hjälp med önskade funktioner Selenium förstå webbläsarens namn, version och operativsystem som krävs för att köra de automatiserade testerna. Nedan följer koden för att konfigurera GeckoDriver med hjälp av klassen DesiredCapabilities.

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

Här är hela koden:

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

2. Använder sig av Marionette-fastigheten

GeckoDriver kan också initieras med hjälp av marionette-egenskapen som visas nedan.

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

Om GeckoDriver initieras med metoden ovan, är koden för önskade funktioner inte krävs.

3. Använder sig av FirefoxMontering

Mozilla Firefox version 47+ exponerar Marionette-drivrutinen som ett äldre system. Genom att dra nytta av detta, Marionette-drivrutinen kan anropas via Firefox Alternativ som visas nedan.

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

Code för lansering Firefox Använda GeckoDriver

Följande JUnit-baserat exempel visar ett komplett, körbart Selenium test som startar Firefox via GeckoDriver och navigerar till 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 Förklaring

@Före-metoden

Ursprungligen satte vi systemegenskapen för GeckoDriver till nedladdningsplatsen för geckodriver.exe. Vi satte också marionette-egenskapen till true så att Selenium använder Marionette-protokollet för att kommunicera med GeckoDriver. Slutligen startar vi Firefox webbläsarinstans med hjälp av objektet Desired Capabilities.

Följande påståenden uppnår denna uppställning.

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

@Testmetod

Vi navigerar till det användardefinierade URL använder den inbyggda get metod tillhandahållen av Selenium WebDriver, som visas nedan.

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

@Efter metoden

Slutligen stänger vi webbläsarinstansen med hjälp av quit metod.

driver.quit();

Ändra ett skript för icke-gecko till gecko

Icke-GeckoDriver-skript som använts tidigare Selenium 3 var enkla. Du skapade helt enkelt en instans av Firefox drivrutinen och använde instansvariabeln.

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

För att konvertera skriptet för GeckoDriver behöver du bara lägga till en rad kod som pekar till platsen geckodriver.exe.

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

Vanliga undantag som inträffade vid användning av GeckoDriver

Följande är en lista över vanliga undantag som uppstår när du använder GeckoDriver, tillsammans med deras lösningar.

Detta undantag inträffar när användaren försöker instansiera Firefox drivrutinen utan att ställa in systemegenskapen för GeckoDriver. Det ses ofta med Selenium nybörjare som inte är medvetna om de förändringar som införts i Selenium 3 jämfört med tidigare versioner.

Lösningen är att ställa in systemegenskapen för GeckoDriver med platsen för geckodriver.exe-filen som visas nedan.

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

Observera att du måste ställa in egenskapen för GeckoDriver innan du skapar en instans av Mozilla. Firefox förare.

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

Detta undantag inträffar vanligtvis när Firefox versionen har uppgraderats till den senaste utgåvan. Lösningen är att uppdatera både Selenium JAR-filen och GeckoDriver till de senaste kompatibla versionerna och kör sedan skriptet igen.

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

Detta undantag uppstår på grund av kompatibilitetsproblem mellan Selenium och GeckoDriver. GeckoDriver fungerar med Firefox version 47 eller senare. Problemet kan lösas genom att uppgradera Firefox version 47 eller senare.

WebDriver Exception: Connection Refused

Detta undantag uppstår när WebDriver inte kan upprätta en anslutning till FirefoxDet kan lösas med någon av följande tekniker.

  • Använd driver.quit() metod för att förstöra tidigare instanser av WebDriver.
  • Rensa webbläsarens cache innan du kör dina automatiserade tester.
  • Rengör projektarbetsytan inom Eclipse ID.
  • Använd alltid den senaste versionen av Selenium GeckoDriver tillsammans med den senaste stabila versionen Firefox släpp.

Vanliga frågor

Nej. GeckoDriver är den körbara proxyfilen som implementerar W3C WebDriver-standarden. Marionette är det inbyggda automatiseringsprotokollet FirefoxGeckoDriver översätter WebDriver-kommandon till Marionette-meddelanden som Firefox kan utföra.

De senaste GeckoDriver-versionerna riktar sig officiellt mot Firefox 91 ESR och senare. Kontrollera alltid GeckoDriver-versionsanteckningarna på Mozillas GitHub-sida för att bekräfta minimi- och maximumvärden. Firefox versioner som stöds av din nedladdade version.

Att lägga till GeckoDriver till systemets PATH är valfritt men bekvämt. Om den är på PATH kan du hoppa över anropet System.setProperty. Annars måste du ange drivrutinssökvägen explicit i din Selenium testskript.

Ja. AI-assisterade testverktyg kan generera Selenium WebDriver-kod, föreslår lokaliseringsverktyg och automatiskt läkning av ojämna skript. De snabbar upp rutinarbetet, men mänsklig granskning av drivrutinsversioner, väntetider och assertions krävs fortfarande för tillförlitliga resultat. Firefox automatisering.

Nej. AI-agenter sitter för närvarande ovanpå WebDriver-protokoll snarare än att ersätta dem. GeckoDriver är fortfarande bryggan till Firefox, medan AI-lager lägger till smartare lokaliseringsfunktioner, självläkning och testförfattande på naturligt språk utöver den befintliga standarden.

Sammanfatta detta inlägg med: