Ovládač Gecko (Marionette) Selenium: sťahovanie, inštalácia, použitie s prehliadačom Firefox

Obsah:

Anonim

Čo je to Gecko Driver?

Termín Gecko znamená skratku pre webový prehliadač, ktorý je zabudovaný do prehliadača Mozilla Firefox. Ovládač Gecko funguje ako server proxy medzi klientmi s povoleným webovým ovládačom (Eclipse, Netbeans atď.) A prehliadačom Mozilla Firefox. Stručne povedané, ovládač Gecko slúži ako prepojenie medzi testami Selenium Web Driver a prehliadačom Mozilla Firefox.

Pred Selenium 3 bol predvoleným prehliadačom Selenium prehliadač Mozilla Firefox. Po seléne 3 musia testéri inicializovať skript, aby mohli prehliadač Firefox používať pomocou explicitného nástroja GeckoDriver. Selenium používa protokol W3C Webdriver na zasielanie žiadostí do systému GeckoDriver, ktorý ich prekladá do protokolu s názvom Marionette. Firefox porozumie príkazom prenášaným vo forme protokolu Marionette a vykoná ich.

Výhoda použitia ovládača Gecko

Selenium Webdriver verzia 2.53 nie je kompatibilný s Mozilla Firefox verzie 47.0+. Ovládač Firefoxu používaný v starších verziách Mozilla Firefox bude ukončený a bude sa používať iba implementácia GeckoDriver. Preto sú testéri nútení používať GeckoDriver, ak chcú spúšťať automatizované testy na prehliadači Mozilla Firefox verzie 47.0+. Ale veľká otázka - v čom je výhoda?

Hlavnou výhodou použitia nástroja GeckoDriver na rozdiel od predvoleného ovládača Firefox je kompatibilita . GeckoDriver používa na komunikáciu so selénom protokol W3C WebDriver . W3C je univerzálne definovaný štandard pre webový ovládač. To znamená, že vývojári selénu (ľudia, ktorí kódujú selénovú základňu) nemusia vytvárať novú verziu webového ovládača pre každú verziu prehľadávača. Rovnaký webový ovládač je možné použiť pre viaceré verzie prehľadávača. Preto je GeckoDriver preferovaný v porovnaní s predchádzajúcou implementáciou ovládača Firefox.

Stiahnite a nainštalujte ovládač Gecko:

Ovládač Gecko je k dispozícii ako spustiteľný súbor, ktorý je možné stiahnuť do systému. Nasleduje zoznam krokov na stiahnutie ovládača gecko.

Krok 1) Na tejto stránke https://github.com/mozilla/geckodriver/releases vyberte príslušnú verziu na stiahnutie GeckoDriver podľa operačného systému, ktorý vlastníte.

Krok 2) Po dokončení sťahovania súboru ZIP extrahujte obsah súboru ZIP do priečinka so súbormi

Krok 3) Poznačte si miesto, kde ste extrahovali ovládač. Poloha sa použije neskôr na vytvorenie inštancie vodiča.

Spôsoby inicializácie GeckoDriver:

Existujú tri rôzne spôsoby, ako inicializovať GeckoDriver.

1. Používanie DesiredCapabilities:

Najskôr nastavte systémovú vlastnosť ovládača Gecko.

Syntax:

System.setProperty ("webdriver.gecko.driver", "Cesta k súboru geckdriver.exe");

Príklad:

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

Ďalej nastavte požadované schopnosti.

Požadované schopnosti pomáhajú selénu porozumieť názvu prehliadača, verzii a operačnému systému pri vykonávaní automatizovaných testov. Nižšie je uvedený kód na nastavenie ovládača gecko pomocou triedy DesiredCapabilities.

DesiredCapabilities capabilities = DesiredCapabilities.firefox ();capabilities.setCapability ("marioneta", pravda);

Tu je celý kód

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities capabilities = DesiredCapabilities.firefox ();capabilities.setCapability ("marioneta", pravda);ovládač = nový FirefoxDriver (možnosti);

2. Používanie vlastnosti marionety:

Ovládač Gecko je možné tiež inicializovať pomocou vlastnosti marionety, ako je uvedené nižšie

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

Ak je ovládač Gecko inicializuje pomocou vyššie uvedenej metódy, je kód pre požadované schopnosti nie je vyžadované.

3. Používanie možností Firefoxu:

Mozilla Firefox verzia 47+ má ako starý systém ovládač marionet. Vďaka tomu je možné ovládač marionety vyvolať pomocou Možnosti prehliadača Firefox, ako je uvedené nižšie

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

Kód na spustenie firefoxu pomocou ovládača Gecko:

balík com.guru99.demo;importovať org.junit.After;importovať org.junit.Before;import org.junit.Test;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;importovať org.openqa.selenium.remote.DesiredCapabilities;verejná trieda GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";verejný ovládač WebDriver;@ Predtýmpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities capabilities = DesiredCapabilities.firefox ();capabilities.setCapability ("marioneta", pravda);ovládač = nový FirefoxDriver (možnosti);}@Testpublic void navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@ Potompublic void endTest () {driver.quit ();}}

Vysvetlenie kódu:

@ Pred metódou:

Spočiatku musíme nastaviť systémovú vlastnosť ovládača gecko na umiestnenie sťahovania súborov geckdriver.exe. Musíme nastaviť vlastnosť marionety na hodnotu true, aby Selenium mohlo na komunikáciu s ovládačom Gecko používať protokol Marionette. Na záver musíme spustiť inštanciu prehliadača Firefox pomocou objektu Desired Capabilities.

Nasledujúce vyhlásenia pomáhajú dosiahnuť vyššie uvedenú úlohu.

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities capabilities = DesiredCapabilities.firefox ();capabilities.setCapability ("marioneta", pravda);ovládač = nový FirefoxDriver (možnosti);

@Testovacia metóda:

Navigujeme na adresu URL zadanú používateľom pomocou vstavanej metódy „get“ poskytnutej webovým ovládačom Selenium. Nasledujúce tvrdenie pomáha dosiahnuť to isté.

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

@ Po metóde:

Nakoniec inštanciu prehliadača zatvárame pomocou metódy quit.

driver.quit ();

Upravte skript pre iné ako gecko:

Skript ovládača, ktorý sa nepoužíval ako gecko, bol použitý skôr, ako bol program Selenium 3 priamy. Musíme vytvoriť inštanciu ovládača Firefox a použiť premennú inštancie.

@ Predtýmpublic void startBrowser () {ovládač = nový FirefoxDriver ();}

Ak chcete previesť na gecko, musíte jednoducho pridať jeden riadok kódu

@ Predtýmpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");ovládač = nový FirefoxDriver ();}

Pri používaní ovládača Gecko sa vyskytli bežné výnimky:

Nasleduje zoznam bežných výnimiek, ktoré sa vyskytujú pri používaní ovládača Gecko a s rozlíšením.

1. Cestu k spustiteľnému súboru ovládača musí nastaviť vlastnosť systému webdriver.gecko.driver:

Táto výnimka nastáva, keď sa používateľ pokúsi vytvoriť inštanciu ovládača Firefox bez nastavenia vlastnosti systému pre ovládač gecko. To zvyčajne robia začiatočníci selénu, ktorí si nie sú vedomí zmien vykonaných od selénu 3 k predchádzajúcim verziám selénu.

Riešením vyššie uvedenej výnimky je nastavenie systémovej vlastnosti ovládača gecko s umiestnením súboru geckodriver.exe, ako je uvedené nižšie.

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

Pred vytvorením inštancie ovládača Mozilla Firefox musíte nastaviť vlastnosť ovládača gecko.

2. Firefox nepripojený Výnimka:

org.openqa.selenium.firefox.NotConnectedException: Po 45 000 ms sa nedá pripojiť k hostiteľovi 127.0.0.1 na porte 7055.

Táto výnimka sa zvyčajne vyskytuje, keď bola verzia prehliadača Firefox inovovaná na najnovšiu verziu. Riešením tejto výnimky je aktualizácia súboru selenium jar a ovládača gecko na najnovšiu verziu a ich použitie.

3. Výnimka relácie nebola vytvorená:

org.openqa.selenium.SessionNotCreatedException: Nie je možné vytvoriť novú vzdialenú reláciu.

Táto výnimka nastáva v dôsledku problémov s kompatibilitou medzi ovládačom Selenium a Gecko. Ovládač Gecko pracuje s prehliadačom Firefox verzie 47 alebo vyššej. Dá sa to vyriešiť aktualizáciou verzie Firefoxu na 47 alebo novšiu.

4. Výnimka s odmietnutím spojenia:

Výnimka WebDriver: Pripojenie odmietnuté

Táto výnimka je správa generovaná, keď webový ovládač nie je schopný nadviazať spojenie s Firefoxom. Môže byť vyriešený použitím ktorejkoľvek z nasledujúcich techník.

  • Na zničenie predchádzajúcich inštancií webového ovládača použite metódu driver.quit ()
  • Pred vykonaním automatizovaných testov vyčistite vyrovnávaciu pamäť prehliadača
  • Vyčistite pracovný priestor projektu v rámci Eclipse IDE
  • Vždy používajte najnovšiu verziu ovládača selenium gecko a najnovšiu verziu prehľadávača Firefox