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.
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
Trinn 2) Pakk ut ZIP-filen.
Når nedlastingen av ZIP-filen er fullført, pakk ut innholdet i ZIP-filen til en filmappe
Trinn 3) Legg merke til plasseringen.
Legg merke til plasseringen der du hentet ut driveren. Plassering vil bli brukt senere for å instansiere driveren.
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.
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.