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