Gecko (Marionette) Driver Selenium: Last ned, installer, bruk med Firefox

Innholdsfortegnelse:

Anonim

Hva er Gecko Driver?

Begrepet Gecko står for en nettlesermotor som er innebygd i Mozilla Firefox-nettleseren. Gecko-driveren fungerer som en mellomtjener mellom klienter som aktiveres av Web Driver (Eclipse, Netbeans, etc.) og nettleseren Mozilla Firefox. Kort sagt fungerer Gecko-driveren som en kobling mellom Selenium Driver driver-tester og Mozilla Firefox nettleser.

Før Selenium 3 var Mozilla Firefox-nettleser standard nettleser for Selenium. Etter Selenium 3, må testere initialisere skriptet for å bruke Firefox ved å bruke 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-protokoll og utfører dem.

Fordelen med å bruke Gecko Driver

Selenium Webdriver versjon 2.53 er ikke kompatibel med Mozilla Firefox versjon 47.0+. Firefox-driveren som ble brukt i tidligere versjoner av Mozilla Firefox vil bli avviklet, og bare GeckoDriver-implementeringen vil bli brukt. Derfor blir testere tvunget til å bruke GeckoDriver hvis de vil 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 standard Firefox-driver er Kompatibilitet . GeckoDriver bruker W3C WebDriver-protokollen for å kommunisere med Selen. W3C er en universelt definert standard for Web Driver. Dette betyr at Selenium Developers (personer som koder Selenium base) ikke trenger å opprette en ny versjon av Web Driver for hver nettleserversjon. Den samme nettdriveren kan brukes til flere nettleserversjoner. Derfor foretrekkes GeckoDriver sammenlignet med den tidligere implementeringen av Firefox-driveren.

Last ned og installer Gecko Driver:

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

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

Trinn 2) Når ZIP-filnedlastingen er fullført, trekker du ut innholdet i ZIP-filen i en filmappe

Trinn 3) Legg merke til stedet der du hentet driveren. Plasseringen vil bli brukt senere for å instansiere driveren.

Måter å initialisere GeckoDriver:

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

1. Bruke DesiredCapabilities:

Sett først systemegenskapen for Gecko Driver.

Syntaks:

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

Eksempel:

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

Deretter angir du ønsket funksjoner.

Ønskede funksjoner hjelper Selenium til å forstå nettleserens navn, versjon og operativsystem for å utføre de automatiserte testene. Nedenfor er koden for å sette gecko driver ved hjelp av DesiredCapabilities klasse.

DesiredCapabilities-muligheter = DesiredCapabilities.firefox ();skills.setCapability ("marionette", sant);

Her er den fullstendige koden

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities-muligheter = DesiredCapabilities.firefox ();skills.setCapability ("marionette", sant);driver = ny FirefoxDriver (evner);

2. Bruke marionettegenskap:

Gecko-driveren kan også initialiseres ved hjelp av marionettegenskap som nedenfor

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

Hvis gecko-driveren initialiseres ved hjelp av metoden ovenfor, kreves ikke kode for ønskede funksjoner .

3. Bruke FirefoxOptions:

Mozilla Firefox versjon 47+ har marionettedrivere som et eldre system. Ved å utnytte dette kan marionettdriveren kalles ved hjelp av Firefox-alternativer som nedenfor

FirefoxOptions-alternativer = nye FirefoxOptions ();options.setLegacy (true);

Kode for å starte Firefox ved hjelp av Gecko-driveren:

pakke com.guru99.demo;import org.junit.After;import org.junit.Before;import org.junit.Test;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.firefox.FirefoxDriver;importer org.openqa.selenium.remote.DesiredCapabilities;offentlig klasse GeckoDriverDemo {Streng driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";offentlig WebDriver-driver;@Føroffentlig ugyldig startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities-muligheter = DesiredCapabilities.firefox ();skills.setCapability ("marionette", sant);driver = ny FirefoxDriver (evner);}@Testoffentlig tomrom navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Etterpublic void endTest () {driver.quit ();}}

Kode Forklaring:

@Førre metode:

Opprinnelig må vi sette systemegenskapen for gecko-driveren til nedlastingsstedet geckdriver.exe. Vi må sette marionetteegenskapen til true for at Selenium skal bruke Marionette-protokollen til å kommunisere med Gecko Driver. Til slutt må vi starte Firefox-nettleserinstansen ved å bruke objektet for Ønskede muligheter.

Uttalelsene nedenfor er med på å oppnå oppgaven ovenfor.

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities-muligheter = DesiredCapabilities.firefox ();skills.setCapability ("marionette", sant);driver = ny FirefoxDriver (evner);

@Testmetode:

Vi navigerer til brukerdefinert URL ved hjelp av den innebygde "get" -metoden som tilbys av Selenium webdriver. Uttalelsen nedenfor hjelper til med å oppnå det samme.

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

@Etter metoden:

Til slutt lukker vi nettleserinstansen ved å avslutte metoden.

driver.quit ();

Endre et skript for ikke-gecko til gecko:

Ikke-gecko driver script som ble brukt før Selenium 3 var greit. Vi må lage en forekomst av Firefox-driveren og bruke forekomstvariabelen.

@Føroffentlig ugyldig startBrowser () {driver = ny FirefoxDriver ();}

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

@Føroffentlig ugyldig startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Nedlastinger \\ GeckoDriver.exe");driver = ny FirefoxDriver ();}

Vanlige unntak skjedde under bruk av Gecko Driver:

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

1. Stien til driver kjørbar må angis av webdriver.gecko.driver systemegenskap:

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

Oppløsningen for ovennevnte unntak er å angi systemegenskapen for gecko-driver med plasseringen av geckodriver.exe-filen som nedenfor

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

Vær oppmerksom på at du må angi egenskapen til gecko-driver før du oppretter en forekomst av Mozilla Firefox-driver.

2. Unntak fra Firefox ikke tilkoblet:

org.openqa.selenium.firefox.NotConnectedException: Kan ikke koble til vert 127.0.0.1 på port 7055 etter 45000 ms.

Dette unntaket oppstår vanligvis når Firefox-versjonen har blitt oppgradert til den siste versjonen. Oppløsningen for dette unntaket er å oppdatere selen jar-filen og gecko-driveren til den nyeste versjonen og bruke den samme.

3. Unntak for økt ikke opprettet:

org.openqa.selenium.SessionNotCreatedException: Kan ikke opprette ny ekstern økt.

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

4. Unntak for tilkobling nektet:

WebDriver Unntak: Tilkobling nektet

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

  • Bruk driver.quit () -metoden for å ødelegge tidligere forekomster av webdriver
  • Rengjør nettleserbufferen før du utfører de automatiserte testene
  • Rengjør prosjektets arbeidsområde i Eclipse IDE
  • Bruk alltid den nyeste versjonen av selen gekko-driveren og den nyeste versjonen av Firefox-nettleseren