Download Geckodriver: Hoe te installeren Firefox driver voor Selenium

Waar zit GeckoDriver in Selenium?

De term Gecko staat voor een webbrowser-engine die in Mozilla is ingebouwd Firefox browser. Het Gecko-stuurprogramma fungeert als proxy tussen clients met Web Driver (Eclipse, Netbeans, enz.) en Mozilla Firefox browser. Kortom, Gecko driver fungeert als schakel tussen Selenium Webstuurprogrammatests en Mozilla Firefox browser.

Voor Selenium 3, Mozilla Firefox browser was de standaardbrowser voor Selenium. Na Selenium 3 moeten testers het te gebruiken script initialiseren Firefox expliciet GeckoDriver gebruiken. Selenium gebruikt het W3C Webdriver-protocol om verzoeken naar GeckoDriver te sturen, die deze vertaalt naar een protocol met de naam Marionette. Firefox zal de commando's begrijpen die worden verzonden in de vorm van Marionette-protocol en voert deze uit.

GeckoDriver in Selenium

Hoe GeckoDriver te downloaden en te installeren Selenium

Gecko Driver is beschikbaar als uitvoerbaar bestand dat op het systeem kan worden gedownload. De volgendewing zijn de lijst met stappen om het gecko-stuurprogramma te downloaden.

Stap 1 ) Selecteer de juiste versie.
Op deze pagina https://github.com/mozilla/geckodriver/releases ,Selecteer de juiste versie voor het downloaden van GeckoDriver op basis van uw operating systeem

Download en installeer GeckoDriver in Selenium

Stap 2) Pak het ZIP-bestand uit.
Zodra het downloaden van het ZIP-bestand is voltooid, extraheert u de inhoud van het ZIP-bestand naar een bestandsmap

Download en installeer GeckoDriver in Selenium

Stap 3) Let op de locatie.
Noteer de locatie waar u het stuurprogramma hebt uitgepakt. Er zal gebruik worden gemaakt van locatie later om de bestuurder te instantiëren.

Download en installeer GeckoDriver in Selenium

Manieren om GeckoDriver te initialiseren

Er zijn drie verschillende manieren om GeckoDriver te initialiseren.

1. Gewenste mogelijkheden gebruiken

Stel eerst de systeemeigenschap voor Gecko Driver in.

Syntax:

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

Voorbeeld:

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

Stel vervolgens de gewenste mogelijkheden in.

Gewenste mogelijkheden helpen Selenium om de browsernaam, versie en operasysteem om de geautomatiseerde tests uit te voeren. Hieronder vindt u de code om het gekko-stuurprogramma in te stellen met behulp van de klasse DesiredCapabilities.

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

Het Gecko-stuurprogramma kan ook worden geïnitialiseerd met behulp van marionette eigendom zoals hieronder

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

Als het gecko-stuurprogramma wordt geïnitialiseerd met behulp van de bovenstaande methode, wordt de code voor de gewenste mogelijkheden weergegeven niet vereist.

3. Gebruik FirefoxOpties

mozilla Firefox versie 47+ heeft marionette-stuurprogramma als een verouderd systeem. Hiervan profiteren, marionette-stuurprogramma kan worden aangeroepen met behulp van Firefox Opties zoals hieronder

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

Code voor lancering firefox met behulp van het Gecko-stuurprogramma

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("http://demo.guru99.com/selenium/guru99home/");
    }

    @After
    public void endTest() {
        driver.quit();
    }

}

Code Uitleg

@Before-methode

In eerste instantie moeten we de systeemeigenschap voor het gecko-stuurprogramma instellen op de downloadlocatie van het bestand geckdriver.exe. We moeten de marionette eigenschap waar voor Selenium gebruiken Marionette-protocol om te communiceren met Gecko Driver. Ten slotte moeten we beginnen met de Firefox browser instantie met behulp van het object voor gewenste mogelijkheden.

De onderstaande uitspraken helpen de bovenstaande taak te verwezenlijken.

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 URL met behulp van de ingebouwde “get” -methode van Selenium webstuurprogramma. De onderstaande verklaring helpt hetzelfde te bereiken.

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

@After-methode

Ten slotte sluiten we de browserinstantie met behulp van de quit-methode.

driver.quit();

Wijzig een script voor niet-Gecko naar Gecko

Eerder gebruikt script voor niet-gekko-stuurprogramma's Selenium 3 was duidelijk. We moeten een exemplaar maken van Firefox driver en gebruik de instantievariabele.

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

}

Om naar gekko te converteren, hoeft u eenvoudigweg één regel code toe te voegen

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

    }

Veelvoorkomende uitzonderingen deden zich voor tijdens het gebruik van Gecko Driver

Following is een lijst met veelvoorkomende uitzonderingen die optreden tijdens het gebruik van Gecko Driver en met resolutie.

Deze uitzondering treedt op wanneer de gebruiker probeert te instantiëren Firefox driver zonder de systeemeigenschap voor gecko driver in te stellen. Dit wordt meestal gedaan door beginners Selenium die niet op de hoogte zijn van de wijzigingen die zijn aangebracht Selenium 3 aan Selenium vorige versies.

De oplossing voor de bovenstaande uitzondering is om de systeemeigenschap voor het gecko-stuurprogramma in te stellen met de locatie van het bestand geckodriver.exe, zoals hieronder

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

Houd er rekening mee dat u de eigenschap Gecko Driver moet instellen voordat u een exemplaar van Mozilla maakt Firefox bestuurder.

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

Deze uitzondering treedt meestal op wanneer Firefox versie is geweest upgraded naar de nieuwste versie. De oplossing voor deze uitzondering is het bijwerken van het selenium jar-bestand en gecko-stuurprogramma naar de nieuwste versie en gebruik dezelfde.

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

Deze uitzondering treedt op vanwege compatibiliteitsproblemen tussen Selenium en Gecko-chauffeur. Gecko-stuurprogramma werkt met Firefox versie 47 of hoger. Het kan worden opgelost door te updaten Firefox versie naar 47 of hoger.

WebDriver Exception: Connection Refused

Deze uitzondering is het bericht dat wordt gegenereerd wanneer het webstuurprogramma geen verbinding kan maken Firefox. Het kan worden opgelost met behulp van een van de volgendewing technieken.

  • Te gebruiken driver.quit() methode om eerdere exemplaren van het webstuurprogramma te vernietigen
  • Maak de browsercache schoon voordat u uw geautomatiseerde tests uitvoert
  • Maak de projectwerkruimte binnenin schoon Eclipse IDE
  • Gebruik altijd de laatste versie van selenium gekko-stuurprogramma en de meest recente versie van Firefox browser

Voordeel van het gebruik van Gecko Driver

Selenium Webdriver versie 2.53 is niet compatibel met Mozilla Firefox versie 47.0+. De Firefox stuurprogramma gebruikt in eerdere versies van Mozilla Firefox zal worden stopgezet en alleen de GeckoDriver-implementatie zou worden gebruikt. Daarom zijn testers gedwongen GeckoDriver te gebruiken als ze geautomatiseerde tests op Mozilla willen uitvoeren Firefox versie 47.0+. Maar de grote vraag: wat is het voordeel?

Het grote voordeel van het gebruik van GeckoDriver ten opzichte van de standaardinstelling Firefox bestuurder is Compatibiliteit. GeckoDriver gebruikt W3C WebDriver-protocol communiceren met Selenium. W3C is een universeel gedefinieerde standaard voor Web Driver. Dit betekent Selenium Ontwikkelaars (mensen die coderen Selenium base) hoeft niet voor elke browserversie een nieuwe versie van Web Driver te maken. Hetzelfde webstuurprogramma kan voor meerdere browserversies worden gebruikt. Daarom heeft GeckoDriver de voorkeur boven de eerdere implementatie van Firefox bestuurder.