Last ned Geckodriver: Hvordan installere Firefox Driver for Selenium

Hva er GeckoDriver i Selenium?

Begrepet Gecko står for en nettlesermotor som er innebygd i Mozilla Firefox nettleser. Gecko-driver fungerer som en proxy mellom Web Driver-aktiverte klienter (Eclipse, Netbeans, etc.) og Mozilla Firefox nettleser. Kort sagt, Gecko driver fungerer som et bindeledd mellom Selenium Nettdrivertester og Mozilla Firefox browser.

Før Selenium 3, Mozilla Firefox nettleser var standard nettleser for Selenium. Etter Selenium 3, testere må initialisere skriptet som skal brukes Firefox bruker GeckoDriver eksplisitt. Selenium bruker W3C Webdriver-protokollen for å sende forespørsler til GeckoDriver, som oversetter dem til en protokoll som heter Marionette. Firefox vil forstå kommandoene som overføres i form av Marionette-protokollen og utfører dem.

GeckoDriver inn Selenium

Hvordan laste ned og installere GeckoDriver i Selenium

Gecko Driver er tilgjengelig som en kjørbar fil som kan lastes ned på systemet. Følgende er listen over trinn for å laste ned gekko-driver.

Trinn 1 ) Velg riktig versjon.
På denne siden https://github.com/mozilla/geckodriver/releases ,Velg riktig versjon for GeckoDriver-nedlasting basert på operativsystemet ditt

Last ned og installer GeckoDriver i Selenium

Trinn 2) Pakk ut ZIP-filen.
Når nedlastingen av ZIP-filen er fullført, pakk ut innholdet i ZIP-filen til en filmappe

Last ned og installer GeckoDriver i Selenium

Trinn 3) Legg merke til plasseringen.
Legg merke til plasseringen der du hentet ut driveren. Plassering vil bli brukt senere for å instansiere driveren.

Last ned og installer GeckoDriver i Selenium

Måter å initialisere GeckoDriver

Det er tre forskjellige måter å initialisere GeckoDriver på.

1. Bruke DesiredCapabilities

Først setter du systemegenskapen for Gecko Driver.

Syntaks:

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

Eksempel:

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

Deretter setter du inn ønskede egenskaper.

Ønskede evner hjelper Selenium for å forstå nettlesernavnet, versjonen og operativsystemet for å utføre de automatiserte testene. Nedenfor er koden for å sette gekko-driver ved å bruke DesiredCapabilities-klassen.

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

Her er den komplette koden

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

2. Bruke marionett eiendom

Gecko-driver kan også initialiseres ved å bruke marionette-egenskapen som nedenfor

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

Hvis gekko-driveren initialiseres ved hjelp av metoden ovenfor, er koden for ønskede funksjoner ikke påkrevd.

3. Ved hjelp av Firefoxalternativer

Mozilla Firefox versjon 47+ har marionettdriver som et eldre system. Ved å dra nytte av dette kan marionettdriver kalles å bruke Firefox Alternativer som nedenfor

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

Kode for å starte firefox med Gecko-driver

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();
    }

}

Kode Forklaring

@Før-metoden

Til å begynne med må vi sette systemegenskapen for gecko-driveren til geckdriver.exe-filens nedlastingsplassering. Vi må sette marionetteegenskapen til sann for Selenium å bruke Marionette-protokoll for å kommunisere med Gecko Driver. Til slutt må vi starte Firefox nettleserforekomst som bruker objektet for Ønskede egenskaper.

Utsagnene nedenfor bidrar til å oppnå oppgaven ovenfor.

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

@Testmetode

Vi navigerer til brukerspesifisert URL ved å bruke den innebygde "get"-metoden levert av Selenium web-driver. Utsagnet nedenfor bidrar til å oppnå det samme.

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

@Etter metoden

Til slutt lukker vi nettleserforekomsten ved å bruke quit-metoden.

driver.quit();

Endre et skript for ikke-Gecko til Gecko

Ikke-gekko-driverskript brukt før Selenium 3 var grei. Vi må lage en instans av Firefox driver og bruk forekomstvariabelen.

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

}

For å konvertere til gekko, må du bare legge til en linje med kode

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

    }

Vanlige unntak oppstod under bruk av Gecko Driver

Følgende er en liste over vanlige unntak som oppstår mens du bruker Gecko Driver og med oppløsning.

Dette unntaket oppstår når brukeren prøver å instansiere Firefox driver uten å angi systemegenskapen for gekko-driver. Dette gjøres vanligvis av nybegynnere Selenium som ikke er klar over endringene som er gjort fra Selenium 3 til Selenium tidligere versjoner.

Løsningen for unntaket ovenfor er å angi systemegenskapen for gekkodriver med plasseringen av geckodriver.exe-filen som nedenfor

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

Vær oppmerksom på at du må angi egenskapen til gekko-driveren før du oppretter en forekomst 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 oppstår vanligvis når Firefox versjonen er oppgradert til siste versjon. Løsningen for dette unntaket er å oppdatere selenium jar-filen og gekko-driveren til den nyeste versjonen og bruke den samme.

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

Dette unntaket oppstår på grunn av kompatibilitetsproblemer mellom Selenium og Gecko-sjåfør. Gecko driver jobber med Firefox versjon 47 eller nyere. Det kan løses ved å oppdatere Firefox versjon til 47 eller nyere.

WebDriver Exception: Connection Refused

Dette unntaket er meldingen som genereres når nettdriveren ikke kan opprette en forbindelse med Firefox. Det kan løses ved å bruke en av følgende teknikker.

  • Bruk driver.quit() metode for å ødelegge tidligere forekomster av webdriver
  • Rengjør nettleserbufferen før du utfører de automatiske testene dine
  • Rengjør prosjektarbeidsområdet innenfor Eclipse IDE
  • Bruk alltid den nyeste versjonen av selenium gecko-driveren og den nyeste versjonen av Firefox nett~~POS=TRUNC leseren~~POS=HEADCOMP

Fordel med å bruke Gecko Driver

Selenium Webdriver versjon 2.53 er ikke kompatibel med Mozilla Firefox versjon 47.0+. De Firefox driver brukt i tidligere versjoner av Mozilla Firefox vil bli avviklet, og bare GeckoDriver-implementeringen vil bli brukt. Derfor er testere tvunget til å bruke GeckoDriver hvis de ønsker å kjøre automatiserte tester på Mozilla Firefox versjon 47.0+. Men det store spørsmålet - hva er fordelen?

Den største fordelen med å bruke GeckoDriver i motsetning til standarden Firefox sjåføren er kompatibilitet. GeckoDriver bruker W3C WebDriver-protokoll å kommunisere med Selenium. W3C er en universelt definert standard for Web Driver. Dette betyr Selenium Utviklere (Folk som koder Selenium base) trenger ikke opprette en ny versjon av Web Driver for hver nettleserversjon. Den samme nettdriveren kan brukes for flere nettleserversjoner. Derfor foretrekkes GeckoDriver sammenlignet med den tidligere implementeringen av Firefox sjåfør.