Download Geckodriver voor Firefox & Selenium

โšก Slimme samenvatting

GeckoDriver voor Firefox en Selenium fungeert als een proxy tussen W3C WebDriver-clients en Mozilla. Firefox, het vertalen van commando's naar de MariHet onette-protocol. Deze handleiding beschrijft de installatie, initialisatietechnieken, voorbeeldcode, veelvoorkomende uitzonderingen en de voordelen van compatibiliteit met de kern.

  • ๐ŸฆŠ Brugfunctie: GeckoDriver verbindt Selenium WebDriver-clients met Firefox met de Marionette protocol.
  • โฌ‡๏ธ Eerst de installatie: Download de juiste GeckoDriver-versie voor uw besturingssysteem vanuit de officiรซle Mozilla-repository.
  • โš™๏ธ Drie initialisatiepaden: Initialiseer de driver via DesiredCapabilities, de systeemeigenschap van de marionet, of FirefoxOpties.
  • ๐Ÿงช Voorbeeldwerkstroom: Gebruik JUnit Annotaties zoals @Before, @Test en @After worden gebruikt om de levenscyclus van de browser op een overzichtelijke manier te beheren.
  • ๏ธ Veelvoorkomende fouten oplossen: Los problemen met SessionNotCreated en verbindingsfouten op door de instellingen aan elkaar te koppelen. Firefox, Seleniumen driverversies.
  • ๐ŸŒ W3C-voordeel: De W3C WebDriver-standaard biedt compatibiliteit tussen verschillende versies, waardoor het onderhoud van automatiseringssuites wordt verminderd.

GeckoDriver in Selenium

Waar zit GeckoDriver in Selenium?

De term Gecko staat voor een webbrowser-engine die is ingebouwd in Mozilla. Firefox browser. GeckoDriver fungeert als een proxy tussen WebDriver-compatibele clients (Eclipse, NetBeans, IntelliJ IDEA, enz.) en de Mozilla Firefox browser. Kortom, GeckoDriver fungeert als een schakel tussen Selenium WebDriver-tests en Mozilla Firefox.

Voor Selenium 3, de Mozilla Firefox browser was de standaardbrowser voor Selenium. Na Selenium 3. Testers moeten het script initialiseren om het te kunnen gebruiken. Firefox via GeckoDriver, expliciet. Selenium gebruikt het W3C WebDriver-protocol om verzoeken naar GeckoDriver te sturen, die deze vertaalt naar een protocol genaamd Marionette. Firefox dan begrijpt hij de commando's transmitted in de MariHet onette-protocolformaat wordt gebruikt en de bijbehorende uitvoeringen worden uitgevoerd.

Voordelen van het gebruik van GeckoDriver

Selenium WebDriver versie 2.53 is niet compatibel met Mozilla. Firefox versie 47.0+. De oude versie Firefox driver gebruikt in eerdere Mozilla-versies Firefox Het bouwen van de software is stopgezet en alleen de GeckoDriver-implementatie kan tegenwoordig nog worden gebruikt. Testers zijn daarom verplicht om GeckoDriver te gebruiken voor het uitvoeren van geautomatiseerde tests op Mozilla. Firefox versie 47.0 en hoger.

Het grootste voordeel van het gebruik van GeckoDriver ten opzichte van de oudere versies is het volgende: Firefox bestuurder is verenigbaarheidGeckoDriver is afhankelijk van de W3C WebDriver-protocol communiceren met SeleniumW3C is een universeel gedefinieerde standaard voor WebDriver. Dit betekent Selenium Ontwikkelaars hoeven niet voor elke nieuwe browserversie een nieuwe driverversie te maken. Dezelfde WebDriver-implementatie kan in meerdere browserversies worden gebruikt, en daarom heeft GeckoDriver de voorkeur boven de oudere versies. Firefox bestuurder.

Hoe GeckoDriver te downloaden en te installeren Selenium

GeckoDriver wordt gedistribueerd als een uitvoerbaar bestand dat direct naar uw systeem kan worden gedownload. Volg de onderstaande stappen om GeckoDriver te downloaden en te installeren. Selenium automatisering.

Stap 1) Selecteer de juiste versie.
Op de officiรซle releasepagina https://github.com/mozilla/geckodriver/releasesKies de juiste GeckoDriver-versie die overeenkomt met uw besturingssysteem en architectuur.

Download en installeer GeckoDriver in Selenium

Stap 2) Extract het ZIP-bestand.
Zodra het downloaden van het ZIP-bestand is voltooid, extracPlaats de inhoud ervan in een map op uw computer.

Extract GeckoDriver ZIP-bestand

Stap 3) Noteer de locatie van de bestuurder.
Noteer het mappad waar u zich bevindt.tracTed is de driver. Deze locatie wordt later gebruikt om de driver vanuit je testscript te instantiรซren.

Let op de locatie van GeckoDriver

Manieren om GeckoDriver te initialiseren

Er zijn drie verschillende manieren om GeckoDriver te initialiseren in uw systeem. Selenium testscripts. Kies het script dat het beste bij uw testframework past en Selenium versie.

1. Gewenste mogelijkheden gebruiken

Stel eerst de systeemeigenschap voor GeckoDriver in.

Syntax:

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

Voorbeeld:

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

Stel vervolgens de gewenste mogelijkheden in. Gewenste mogelijkheden helpen hierbij. Selenium De naam, versie en het besturingssysteem van de browser zijn vereist om de geautomatiseerde tests uit te voeren. Hieronder staat de code om GeckoDriver te configureren met behulp van de DesiredCapabilities-klasse.

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

Hier is de volledige code:

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

2. Gebruik Marionette-eigendom

GeckoDriver kan ook worden geรฏnitialiseerd met behulp van de marionet-eigenschap, zoals hieronder wordt weergegeven.

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

Als GeckoDriver wordt geรฏnitialiseerd met behulp van de bovenstaande methode, is de code voor de gewenste mogelijkheden als volgt: niet vereist.

3. Gebruik Firefoxopties

mozilla Firefox versie 47+ onthult de Marionette driver als een verouderd systeem. Door hiervan gebruik te maken, MariDe onette-driver kan worden aangeroepen via Firefox Opties zoals hieronder weergegeven.

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

Code voor lancering Firefox GeckoDriver gebruiken

De volgende JUnitHet op - gebaseerde voorbeeld toont een compleet, werkend voorbeeld. Selenium test die wordt gelanceerd Firefox via GeckoDriver en navigeert naar een 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 Uitleg

@Before-methode

In eerste instantie hebben we de systeemparameter voor GeckoDriver ingesteld op de downloadlocatie van geckodriver.exe. We hebben ook de marionet-parameter op true gezet, zodat Selenium gebruikt MariHet onette-protocol wordt gebruikt om met GeckoDriver te communiceren. Tot slot starten we de Firefox Browserinstantie die gebruikmaakt van het Desired Capabilities-object.

De volgende instructies realiseren deze configuratie.

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

@Test methode

We navigeren naar de door de gebruiker opgegeven locatie. URL gebruik de ingebouwde get methode aangeboden door Selenium WebDriver, zoals hieronder weergegeven.

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

@After-methode

Tot slot sluiten we het browserexemplaar af met behulp van de quit methode.

driver.quit();

Een script aanpassen voor niet-Gecko-gebruikers naar Gecko-gebruikers

Niet-GeckoDriver-scripts die eerder werden gebruikt Selenium 3 waren eenvoudig. Je maakte gewoon een instantie van de Firefox en gebruikte de instantievariabele.

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

Om het script voor GeckoDriver te converteren, hoeft u slechts รฉรฉn regel code toe te voegen die verwijst naar de locatie van geckodriver.exe.

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

Veelvoorkomende uitzonderingen die optraden tijdens het gebruik van GeckoDriver

Hieronder vindt u een lijst met veelvoorkomende uitzonderingen die zich voordoen bij het gebruik van GeckoDriver, samen met de oplossingen daarvoor.

Deze uitzondering treedt op wanneer de gebruiker probeert een instantie te maken van de Firefox driver zonder de systeemeigenschap voor GeckoDriver in te stellen. Dit komt vaak voor bij Selenium beginners die niet op de hoogte zijn van de veranderingen die zijn doorgevoerd in Selenium 3 vergeleken met eerdere versies.

De oplossing is om de systeemeigenschap voor GeckoDriver in te stellen met de locatie van het bestand geckodriver.exe, zoals hieronder weergegeven.

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

Houd er rekening mee dat u de eigenschap van GeckoDriver moet instellen voordat u een instantie van Mozilla aanmaakt. Firefox bestuurder.

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

Deze uitzondering doet zich meestal voor wanneer de Firefox De versie is geรผpgraded naar de nieuwste release. De oplossing is om beide te updaten. Selenium Werk het JAR-bestand en GeckoDriver bij naar de nieuwste compatibele versies en voer het script vervolgens opnieuw uit.

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

Deze uitzondering treedt op vanwege compatibiliteitsproblemen tussen Selenium en GeckoDriver. GeckoDriver werkt met Firefox versie 47 of hoger. Het probleem kan worden opgelost door te upgraden. Firefox versie 47 of hoger.

WebDriver Exception: Connection Refused

Deze uitzondering treedt op wanneer WebDriver geen verbinding kan maken met FirefoxHet kan worden opgelost met behulp van een van de volgende technieken.

  • Gebruik de driver.quit() methode om eerdere instanties van WebDriver te verwijderen.
  • Wis de browsercache voordat je je geautomatiseerde tests uitvoert.
  • Maak de projectwerkruimte schoon binnen de Eclipse IDE.
  • Gebruik altijd de nieuwste versie van de Selenium GeckoDriver samen met de meest recente stabiele versie Firefox vrij.

Veelgestelde vragen

Nee. GeckoDriver is het proxy-uitvoerbare bestand dat de W3C WebDriver-standaard implementeert. Marionette is het automatiseringsprotocol dat is ingebouwd in FirefoxGeckoDriver vertaalt WebDriver-opdrachten naar Marionette berichten die Firefox kan uitvoeren.

De nieuwste GeckoDriver-builds zijn officieel gericht op Firefox 91 ESR en nieuwer. Controleer altijd de release-opmerkingen van GeckoDriver op de GitHub-pagina van Mozilla om de minimale en maximale versie te bevestigen. Firefox versies die worden ondersteund door de build die u hebt gedownload.

Het toevoegen van GeckoDriver aan het systeem-PATH is optioneel, maar wel handig. Als het al in het PATH staat, kunt u de aanroep van System.setProperty overslaan. Anders moet u het pad naar het stuurprogramma expliciet opgeven in uw configuratiebestand. Selenium testscript.

Ja. Testtools met AI-ondersteuning kunnen genereren Selenium WebDriver-code, suggesties voor locators en automatische reparatie van onbetrouwbare scripts versnellen routinewerk, maar menselijke controle van driverversies, wachttijden en beweringen blijft nodig voor een betrouwbare werking. Firefox automatisering.

Nee. AI-agenten maken momenteel gebruik van WebDriver-protocollen in plaats van deze te vervangen. GeckoDriver blijft de brug naar FirefoxTerwijl AI-lagen slimmere lokalisatiefuncties, zelfherstellende eigenschappen en de mogelijkheid om tests in natuurlijke taal te schrijven toevoegen aan de bestaande standaard.

Vat dit bericht samen met: