Hvad er Gecko Driver?
Udtrykket Gecko står for en webbrowser-motor, der er indbygget i Mozilla Firefox-browseren. Gecko-driver fungerer som en proxy mellem Web Driver-aktiverede klienter (Eclipse, Netbeans osv.) Og Mozilla Firefox-browseren. Kort sagt fungerer Gecko-driveren som et link mellem Selenium Driver-tests og Mozilla Firefox-browseren.
Før Selenium 3 var Mozilla Firefox-browseren standardbrowseren til Selenium. Efter Selenium 3 skal testere initialisere scriptet for at bruge Firefox eksplicit ved hjælp af GeckoDriver. Selenium bruger W3C Webdriver-protokol til at sende anmodninger til GeckoDriver, som oversætter dem til en protokol ved navn Marionette. Firefox vil forstå de kommandoer, der transmitteres i form af Marionette-protokol, og udfører dem.
Fordelen ved at bruge Gecko Driver
Selenium Webdriver version 2.53 er ikke kompatibel med Mozilla Firefox version 47.0+. Firefox-driveren, der blev brugt i tidligere versioner af Mozilla Firefox, afbrydes, og kun GeckoDriver-implementeringen vil blive brugt. Derfor er testere tvunget til at bruge GeckoDriver, hvis de vil køre automatiske tests på Mozilla Firefox version 47.0+. Men det store spørgsmål - hvad er fordelen?
Den største fordel ved at bruge GeckoDriver i modsætning til standard Firefox-driveren er kompatibilitet . GeckoDriver bruger W3C WebDriver-protokollen til at kommunikere med Selen. W3C er en universelt defineret standard for webdriver. Dette betyder, at Selenium-udviklere (personer, der koder Selenium-base) ikke behøver at oprette en ny version af Web Driver til hver browserversion. Den samme webdriver kan bruges til flere browserversioner. Derfor foretrækkes GeckoDriver sammenlignet med den tidligere implementering af Firefox-driveren.
Download og installer Gecko Driver:
Gecko Driver er tilgængelig som en eksekverbar fil, der kan downloades på systemet. Følgende er listen over trin til download af gecko-driver.
Trin 1) På denne side https://github.com/mozilla/geckodriver/releases skal du vælge den passende version til GeckoDriver-download baseret på dit operativsystem
Trin 2) Når ZIP-filoverførslen er færdig, skal du udpakke indholdet af ZIP-filen i en filmappe
Trin 3) Bemærk det sted, hvor du ekstraherede driveren. Placering vil blive brugt senere til at instantiere driveren.
Måder at initialisere GeckoDriver:
Der er tre forskellige måder at initialisere GeckoDriver på.
1. Brug af ønsket kapacitet:
Indstil først systemegenskaben for Gecko Driver.
Syntaks:
System.setProperty ("webdriver.gecko.driver", "Sti til geckdriver.exe-fil");
Eksempel:
System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");
Indstil derefter Ønskede kapaciteter.
Ønskede muligheder hjælper Selenium med at forstå browserens navn, version og operativsystem til at udføre de automatiserede tests. Nedenfor er koden til indstilling af gecko-driver ved hjælp af DesiredCapabilities-klassen.
DesiredCapabilities-muligheder = DesiredCapabilities.firefox ();capabilities.setCapability ("marionette", sand);
Her er den komplette kode
System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities-muligheder = DesiredCapabilities.firefox ();capabilities.setCapability ("marionette", sand);driver = ny FirefoxDriver (funktioner);
2. Brug af marionetteegenskaber:
Gecko-driveren kan også initialiseres ved hjælp af marionetteegenskaber som nedenfor
System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");
Hvis gecko driver initialiseres ved anvendelse af ovennævnte fremgangsmåde kode for ønskede kapaciteter ikke påkrævet.
3. Brug af FirefoxOptions:
Mozilla Firefox version 47+ har marionette-driver som et ældre system. Udnyt dette kan marionette-driver kaldes ved hjælp af Firefox-indstillinger som nedenfor
FirefoxOptions muligheder = nye FirefoxOptions ();options.setLegacy (sand);
Kode til lancering af Firefox ved hjælp af Gecko-driveren:
pakke 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;offentlig klasse GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";offentlig WebDriver-driver;@Føroffentlig ugyldig startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities-muligheder = DesiredCapabilities.firefox ();capabilities.setCapability ("marionette", sand);driver = ny FirefoxDriver (funktioner);}@Prøvepublic void navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Efterpublic void endTest () {driver.quit ();}}
Kode Forklaring:
@Før metode:
Oprindeligt skal vi indstille systemegenskaben for gecko-driveren til geckdriver.exe-filens downloadplacering. Vi er nødt til at indstille marionetteegenskaben til sand for Selenium for at bruge Marionette-protokollen til at kommunikere med Gecko Driver. Endelig er vi nødt til at starte Firefox-browserinstansen ved hjælp af objektet til Ønskede muligheder.
Nedenstående udsagn hjælper med at nå ovenstående opgave.
System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities-muligheder = DesiredCapabilities.firefox ();capabilities.setCapability ("marionette", sand);driver = ny FirefoxDriver (funktioner);
@Testmetode:
Vi navigerer til brugerdefineret URL ved hjælp af den indbyggede "get" -metode, der leveres af Selenium-webdriver. Nedenstående erklæring hjælper med at opnå det samme.
driver.get ("http://demo.guru99.com/selenium/guru99home/");
@Efter metode:
Endelig lukker vi browserinstansen ved hjælp af quit-metoden.
driver.quit ();
Rediger et script til ikke-gecko til gecko:
Ikke-gecko driver script brugt før Selenium 3 var ligetil. Vi er nødt til at oprette en forekomst af Firefox-driveren og bruge instansvariablen.
@Føroffentlig ugyldig startBrowser () {driver = ny FirefoxDriver ();}
For at konvertere til gecko skal du blot tilføje en linje kode
@Føroffentlig ugyldig startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");driver = ny FirefoxDriver ();}
Almindelige undtagelser opstod under brug af Gecko Driver:
Følgende er en liste over almindelige undtagelser, der opstår, når du bruger Gecko Driver og med opløsning.
1. Stien til eksekverbar driver skal indstilles af webdriver.gecko.driver systemegenskab:
Denne undtagelse opstår, når brugeren forsøger at starte Firefox-driveren uden at indstille systemegenskaben for gecko-driver. Dette gøres normalt af begyndere til Selen, der ikke er opmærksomme på de ændringer, der er foretaget fra Selen 3 til Selen tidligere versioner.
Opløsningen til ovenstående undtagelse er at indstille systemegenskaben for gecko-driver med placeringen af geckodriver.exe-filen som nedenfor
System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ geckodriver.exe");
Bemærk, at du skal indstille egenskaben til gecko-driver, før du opretter en forekomst af Mozilla Firefox-driver.
2. Undtagelse fra Firefox ikke tilsluttet:
org.openqa.selenium.firefox.NotConnectedException: Kan ikke oprette forbindelse til vært 127.0.0.1 på port 7055 efter 45000 ms.
Denne undtagelse forekommer normalt, når Firefox-versionen er blevet opgraderet til den nyeste version. Opløsningen til denne undtagelse er at opdatere selen jar-filen og gecko-driveren til den nyeste version og bruge den samme.
3. Undtagelse fra session ikke oprettet:
org.openqa.selenium.SessionNotCreatedException: Kan ikke oprette ny fjernsession.
Denne undtagelse opstår på grund af kompatibilitetsproblemer mellem Selenium og Gecko-driveren. Gecko-driveren fungerer med Firefox version 47 eller nyere. Det kan løses ved at opdatere Firefox-version til 47 eller derover.
4. Forbindelse nægtet undtagelse:
WebDriver-undtagelse: Forbindelse nægtet
Denne undtagelse er den meddelelse, der genereres, når webdriveren ikke er i stand til at oprette forbindelse til Firefox. Det kan løses ved hjælp af en af følgende teknikker.
- Brug driver.quit () -metoden til at ødelægge tidligere forekomster af webdriver
- Rens browserens cache, før du udfører dine automatiske tests
- Rengør projektets arbejdsområde i Eclipse IDE
- Brug altid den nyeste version af selen gekko-driveren og den nyeste version af Firefox-browseren