Gecko (Marionette) vozač Selenium: preuzmite, instalirajte, upotrijebite s Firefoxom

Sadržaj:

Anonim

Što je Gecko Driver?

Pojam Gecko označava mehanizam web preglednika koji je ugrađen u preglednik Mozilla Firefox. Gecko upravljački program djeluje kao proxy između klijenata s omogućenim web-upravljačkim programima (Eclipse, Netbeans, itd.) I preglednika Mozilla Firefox. Ukratko, Gecko upravljački program djeluje kao poveznica između testova Selenium Web Driver i preglednika Mozilla Firefox.

Prije Selenium 3, Mozilla Firefox preglednik je bio zadani preglednik za Selenium. Nakon selenija 3, testeri moraju inicijalizirati skriptu da bi Firefox eksplicitno koristio GeckoDriver. Selenium koristi protokol W3C Webdriver za slanje zahtjeva na GeckoDriver, što ih prevodi u protokol nazvan Marionette. Firefox će razumjeti naredbe koje se prenose u obliku Marionette protokola i izvršava ih.

Prednost korištenja Gecko Drivera

Verzija 2.53 Selenium Webdriver nije kompatibilna s Mozilla Firefox verzijom 47.0+. Upravljački program Firefox korišten u ranijim verzijama Mozilla Firefoxa ukinut će se, a koristila bi se samo implementacija GeckoDriver. Stoga su testeri prisiljeni koristiti GeckoDriver ako žele pokrenuti automatizirane testove na Mozilla Firefoxu verzije 47.0+. Ali veliko je pitanje - koja je prednost?

Glavna prednost korištenja GeckoDriver-a za razliku od zadanog Firefox-ovog upravljačkog programa je kompatibilnost . GeckoDriver koristi W3C WebDriver protokol za komunikaciju sa Selenijem. W3C je univerzalno definirani standard za web upravljački program. To znači da programeri Selenium (ljudi koji kodiraju bazu Selenium) ne trebaju stvarati novu verziju web upravljačkog programa za svaku verziju preglednika. Isti web upravljački program može se koristiti za više verzija preglednika. Stoga je GeckoDriver poželjniji u odnosu na raniju implementaciju Firefox upravljačkog programa.

Preuzmite i instalirajte upravljački program Gecko:

Gecko Driver dostupan je kao izvršna datoteka koja se može preuzeti na sustav. Slijedi popis koraka za preuzimanje upravljačkog programa gecko.

Korak 1) Na ovoj stranici https://github.com/mozilla/geckodriver/releases, odaberite odgovarajuću verziju za preuzimanje GeckoDriver na temelju vašeg operativnog sustava

Korak 2) Nakon završetka preuzimanja ZIP datoteke, izdvojite sadržaj ZIP datoteke u mapu datoteke

Korak 3) Zabilježite mjesto na kojem ste izvadili upravljački program. Lokacija će se kasnije koristiti za instanciranje upravljačkog programa.

Načini inicijalizacije GeckoDriver:

Postoje tri različita načina inicijalizacije GeckoDriver.

1. Korištenje željenih mogućnosti:

Prvo postavite svojstvo sustava za Gecko Driver.

Sintaksa:

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

Primjer:

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

Dalje, postavite željene mogućnosti.

Željene mogućnosti pomažu Seleniju da razumije ime preglednika, verziju i operativni sustav za izvršavanje automatiziranih testova. Ispod je kod za postavljanje gecko pokretačkog programa pomoću klase DesiredCapabilities.

Mogućnosti željene sposobnosti = DesiredCapabilities.firefox ();sposobnosti.setCapability ("marioneta", istina);

Evo kompletnog koda

System.setProperty ("webdriver.gecko.driver", driverPath);Mogućnosti željene sposobnosti = DesiredCapabilities.firefox ();sposobnosti.setCapability ("marioneta", istina);upravljački program = novi FirefoxDriver (mogućnosti);

2. Korištenje marioneta:

Gecko pokretački program također se može inicijalizirati pomoću marionete svojstva kao što je prikazano u nastavku

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

Ako se pokretački program gecko pokrene pomoću gore navedene metode, nije potreban kôd za željene mogućnosti .

3. Korištenje FirefoxOptions:

Mozilla Firefox verzija 47+ ima naslijeđeni sustav za marionete. Iskoristivši ovo, vozač marionete može se nazvati pomoću Firefox opcija kao što je prikazano u nastavku

FirefoxOptions opcije = novi FirefoxOptions ();options.setLegacy (true);

Kôd za pokretanje firefoxa pomoću upravljačkog programa 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;javna klasa GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";javni pokretački program WebDriver;@Prijejavna void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);Mogućnosti željene sposobnosti = DesiredCapabilities.firefox ();sposobnosti.setCapability ("marioneta", istina);upravljački program = novi FirefoxDriver (mogućnosti);}@Testjavna praznina navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Nakonjavna void endTest () {driver.quit ();}}

Objašnjenje koda:

@Before metoda:

U početku trebamo postaviti svojstvo sustava za upravljački program gecko na mjesto preuzimanja datoteke geckdriver.exe. Moramo postaviti svojstvo marionete na true da bi Selenium koristio Marionette protokol za komunikaciju s Gecko Driver-om. Napokon, instancu preglednika Firefox moramo pokrenuti pomoću objekta za željene mogućnosti.

Izjave u nastavku pomažu u postizanju gore navedenog zadatka.

System.setProperty ("webdriver.gecko.driver", driverPath);Mogućnosti željene sposobnosti = DesiredCapabilities.firefox ();sposobnosti.setCapability ("marioneta", istina);upravljački program = novi FirefoxDriver (mogućnosti);

@Metoda ispitivanja:

Dolazimo do korisničkog URL-a pomoću ugrađene metode "get" koju pruža mrežni upravljački program Selenium. Izjava u nastavku pomaže postići isto.

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

@Nakon metode:

Konačno, zatvorimo instancu preglednika metodom quit.

driver.quit ();

Izmijenite skriptu za ne-Gecko u Gecko:

Skripta za upravljačke programe koja nije gecko korištena prije selena 3 bila je jednostavna. Moramo stvoriti instancu Firefox upravljačkog programa i koristiti varijablu instance.

@Prijejavna void startBrowser () {upravljački program = novi FirefoxDriver ();}

Da biste pretvorili u gecko, trebate jednostavno dodati jedan redak koda

@Prijejavna void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Preuzimanja \\ GeckoDriver.exe");upravljački program = novi FirefoxDriver ();}

Uobičajene iznimke dogodile su se tijekom upotrebe upravljačkog programa Gecko:

Slijedi popis uobičajenih iznimaka koji se javljaju tijekom korištenja Gecko Driver-a i s razlučivošću.

1. Put do izvršne datoteke upravljačkog programa mora postaviti svojstvo sustava webdriver.gecko.driver:

Ova se iznimka događa kada korisnik pokuša instancirati Firefox upravljački program bez postavljanja sistemskog svojstva za gecko driver. To obično čine početnici u Seleniju koji nisu svjesni promjena napravljenih od Selenium 3 u Selenium u prethodnim verzijama.

Rezolucija za gornju iznimku je postavljanje sistemskog svojstva za pokretač gekona s lokacijom datoteke geckodriver.exe, kao u nastavku

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

Imajte na umu da prije postavljanja instance Mozilla Firefox upravljačkog programa morate postaviti svojstvo gecko driver-a.

2. Iznimka Firefox nije povezan:

org.openqa.selenium.firefox.NotConnectedException: Nije moguće povezati se s hostom 127.0.0.1 na portu 7055 nakon 45000 ms.

Ta se iznimka obično događa kada je verzija Firefoxa nadograđena na najnoviju verziju. Rezolucija ove iznimke je ažuriranje datoteke selenium jar i pokretačkog programa gecko na najnoviju verziju i korištenje iste.

3. Iznimka nije stvorena

org.openqa.selenium.SessionNotCreatedException: Nije moguće stvoriti novu udaljenu sesiju.

Do ove iznimke dolazi zbog problema s kompatibilnošću između selena i upravljačkog programa Gecko. Gecko upravljački program radi s Firefoxom verzije 47 ili novijom. To se može riješiti ažuriranjem verzije Firefoxa na 47 ili noviju verziju.

4. Iznimka odbijene veze:

Iznimka WebDrivera: veza odbijena

Ova iznimka je poruka koja se generira kada web upravljački program ne može uspostaviti vezu s Firefoxom. To se može riješiti bilo kojom od sljedećih tehnika.

  • Upotrijebite metodu driver.quit () za uništavanje ranijih instanci web-upravljačkog programa
  • Očistite predmemoriju preglednika prije izvođenja automatskih testova
  • Očistite radni prostor projekta u Eclipse IDE-u
  • Uvijek koristite najnoviju verziju upravljačkog programa za selenium gecko i najnoviju verziju preglednika Firefox