Gecko (Marionette) Driver Selenium: Prenos, namestitev, uporaba s Firefoxom

Kazalo:

Anonim

Kaj je Gecko Driver?

Izraz Gecko pomeni mehanizem spletnega brskalnika, ki je vgrajen v brskalnik Mozilla Firefox. Gonilnik Gecko deluje kot posrednik med odjemalci z omogočenim spletnim gonilnikom (Eclipse, Netbeans itd.) In brskalnikom Mozilla Firefox. Skratka, gonilnik Gecko deluje kot povezava med preizkusi spletnih gonilnikov Selenium in brskalnikom Mozilla Firefox.

Pred selenijem 3 je bil privzeti brskalnik za selenium brskalnik Mozilla Firefox. Po selenu 3 morajo preizkuševalci inicializirati skript za uporabo Firefoxa z izrecno uporabo GeckoDriver. Selenium uporablja protokol W3C Webdriver za pošiljanje zahtev na GeckoDriver, ki jih prevede v protokol z imenom Marionette. Firefox bo razumel ukaze, ki se prenašajo v obliki protokola Marionette, in jih izvršil.

Prednost uporabe Gecko Driver

Različica Selenium Webdriver 2.53 ni združljiva z Mozilla Firefox različice 47.0+. Gonilnik Firefox, ki se je uporabljal v starejših različicah programa Mozilla Firefox, bo ukinjen, uporabljala pa se bo samo implementacija GeckoDriver. Zato so preizkuševalci prisiljeni uporabljati GeckoDriver, če želijo izvajati avtomatizirane teste v Mozilla Firefox različice 47.0+. Toda veliko vprašanje - v čem je prednost?

Glavna prednost uporabe GeckoDriverja v primerjavi s privzetim gonilnikom Firefox je združljivost . GeckoDriver za komunikacijo s selenom uporablja protokol W3C WebDriver . W3C je univerzalno opredeljen standard za spletni gonilnik. To pomeni, da razvijalcem Selenium (ljudem, ki kodirajo bazo Selenium) ni treba ustvariti nove različice spletnega gonilnika za vsako različico brskalnika. Isti spletni gonilnik se lahko uporablja za več različic brskalnika. Zato je prednost GeckoDriver v primerjavi s prejšnjo izvedbo gonilnika Firefox.

Prenesite in namestite gonilnik Gecko:

Gecko Driver je na voljo kot izvedljiva datoteka, ki jo lahko prenesete v sistem. Sledi seznam korakov za prenos gonilnika gecko.

1. korak) Na tej strani https://github.com/mozilla/geckodriver/releases izberite ustrezno različico za prenos GeckoDriver glede na vaš operacijski sistem

Korak 2) Ko je prenos datoteke ZIP končan, izvlecite vsebino datoteke ZIP v mapo z datotekami

Korak 3) Upoštevajte mesto, kjer ste izvlekli gonilnik. Lokacija bo kasneje uporabljena za instanciranje gonilnika.

Načini inicializacije GeckoDriver:

Obstajajo trije različni načini inicializacije GeckoDriver.

1. Uporaba želenih zmožnosti:

Najprej nastavite sistemsko lastnost za Gecko Driver.

Sintaksa:

System.setProperty ("webdriver.gecko.driver", "Pot do datoteke geckdriver.exe");

Primer:

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

Nato nastavite želene zmožnosti.

Želene zmogljivosti pomagajo podjetju Selenium razumeti ime, različico in operacijski sistem brskalnika za izvajanje avtomatiziranih testov. Spodaj je koda za nastavitev gonilnika gecko z uporabo razreda DesiredCapabilities.

DesiredCapabilities zmogljivosti = DesiredCapabilities.firefox ();functions.setCapability ("marioneta", resnično);

Tu je celotna koda

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities zmogljivosti = DesiredCapabilities.firefox ();functions.setCapability ("marioneta", resnično);voznik = novi FirefoxDriver (zmogljivosti);

2. Uporaba marionete:

Gonilnik Gecko je mogoče inicializirati tudi z lastnostjo marionete, kot je prikazano spodaj

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

Če je gonilnik gecko inicializiran z zgornjo metodo, koda za želene zmogljivosti ni potrebna.

3. Uporaba FirefoxOptions:

Mozilla Firefox različice 47+ ima kot starejši sistem gonilnik marionete. Če to izkoristite, lahko pokličemo gonilnik marionete z uporabo možnosti Firefox, kot je prikazano spodaj

Možnosti FirefoxOptions = novi FirefoxOptions ();options.setLegacy (true);

Koda za zagon firefoxa z gonilnikom Gecko:

paket com.guru99.demo;import org.junit.After;uvoz org.junit.Before;uvoz org.junit.Test;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.firefox.FirefoxDriver;uvoz org.openqa.selenium.remote.DesiredCapabilities;javni razred GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";javni gonilnik WebDriver;@ Pred tempublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities zmogljivosti = DesiredCapabilities.firefox ();functions.setCapability ("marioneta", resnično);voznik = novi FirefoxDriver (zmogljivosti);}@Testjavna void navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Popublic void endTest () {driver.quit ();}}

Razlaga kode:

@ Pred metodo:

Sprva moramo sistemsko lastnost gonilnika gecko nastaviti na mesto prenosa datoteke geckdriver.exe. Lastnost marionete moramo nastaviti na true, da lahko Selenium uporablja protokol Marionette za komunikacijo z Gecko Driver. Na koncu moramo zagnati primerek brskalnika Firefox z uporabo predmeta za želene zmogljivosti.

Spodnje izjave pomagajo doseči zgornjo nalogo.

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities zmogljivosti = DesiredCapabilities.firefox ();functions.setCapability ("marioneta", resnično);voznik = novi FirefoxDriver (zmogljivosti);

@Test metoda:

Do uporabniško določenega URL-ja se premikamo z vgrajeno metodo »get«, ki jo ponuja spletni gonilnik Selenium. Spodnja izjava pomaga doseči enako.

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

@Po metodi:

Na koncu zaključimo primerek brskalnika z metodo prenehanja.

driver.quit ();

Spremenite skript za ne-Gecko v Gecko:

Skript za gonilnike brez gecko, uporabljen pred Selenium 3, je bil preprost. Ustvariti moramo primerek gonilnika Firefox in uporabiti spremenljivko primerka.

@ Pred tempublic void startBrowser () {voznik = novi FirefoxDriver ();}

Če želite pretvoriti v gecko, morate preprosto dodati eno vrstico kode

@ Pred tempublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Prenosi \\ GeckoDriver.exe");voznik = novi FirefoxDriver ();}

Med uporabo gonilnika Gecko so se pojavile pogoste izjeme:

Sledi seznam pogostih izjem, do katerih pride med uporabo Gecko Driver in z ločljivostjo.

1. Pot do izvršljive datoteke gonilnika mora nastaviti sistemska lastnost webdriver.gecko.driver:

Ta izjema se zgodi, ko uporabnik poskuša instantirati gonilnik Firefox, ne da bi določil sistemsko lastnost za gonilnik gecko. To običajno počnejo začetniki v seleniju, ki niso seznanjeni s spremembami iz selena 3 v selenij v prejšnjih različicah.

Ločljivost zgornje izjeme je nastaviti sistemsko lastnost za gonilnik gecko z lokacijo datoteke geckodriver.exe, kot spodaj

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

Prosimo, upoštevajte, da morate pred ustvarjanjem primerka gonilnika Mozilla Firefox nastaviti lastnost gonilnika gecko.

2. Izjema Firefox Not Connected:

org.openqa.selenium.firefox.NotConnectedException: Po 45000 ms ni mogoče vzpostaviti povezave z gostiteljem 127.0.0.1 na vratih 7055.

Ta izjema se običajno zgodi, ko je različica Firefoxa nadgrajena na najnovejšo različico. Ločljivost te izjeme je posodobiti datoteko selen jar in gonilnik gecko na najnovejšo različico in uporabiti istega.

3. Izjema seje ni ustvarjena:

org.openqa.selenium.SessionNotCreatedException: Nove oddaljene seje ni mogoče ustvariti.

Do te izjeme pride zaradi težav z združljivostjo med gonilnikom Selenium in Gecko. Gonilnik Gecko deluje s Firefoxom različice 47 ali novejšo. To je mogoče rešiti s posodobitvijo različice Firefox na 47 ali novejšo različico.

4. Izjema zavrnjena povezava:

Izjema WebDriver: povezava zavrnjena

Ta izjema je sporočilo, ustvarjeno, ko spletni gonilnik ne more vzpostaviti povezave s Firefoxom. To je mogoče rešiti s katero koli od naslednjih tehnik.

  • Uporabite metodo driver.quit () za uničenje prejšnjih primerkov spletnega gonilnika
  • Pred izvajanjem avtomatiziranih testov očistite predpomnilnik brskalnika
  • Očistite delovni prostor projekta v programu Eclipse IDE
  • Vedno uporabljajte najnovejšo različico gonilnika za selen gecko in najnovejšo različico brskalnika Firefox