Gecko (Marionette) illesztőprogram-szelén: Töltse le, telepítse, használja a Firefoxszal

Tartalomjegyzék:

Anonim

Mi az a Gecko Driver?

A Gecko kifejezés egy böngészőmotort jelent, amelyet a Mozilla Firefox böngészőbe építenek be. A Gecko illesztőprogram proxyként működik a Web Driver-képes kliensek (Eclipse, Netbeans stb.) És a Mozilla Firefox böngésző között. Röviden, a Gecko illesztőprogram összeköttetésként működik a Selenium Web Driver tesztek és a Mozilla Firefox böngésző között.

A Selenium 3 előtt a Mozilla Firefox böngésző volt az alapértelmezett böngésző a Selenium számára. A Selenium 3 után a tesztelőknek inicializálniuk kell a szkriptet a Firefox használatához, kifejezetten a GeckoDriver használatával. A Selenium a W3C Webdriver protokoll segítségével küldi el a kéréseket a GeckoDriver számára, amely ezeket Marionette nevű protokollvá alakítja át. A Firefox meg fogja érteni a Marionette protokoll formájában továbbított parancsokat, és végrehajtja azokat.

A Gecko Driver használatának előnye

A Selenium Webdriver 2.53 verziója nem kompatibilis a Mozilla Firefox 47.0+ verziójával. A Mozilla Firefox korábbi verzióiban használt Firefox illesztőprogram megszűnik, és csak a GeckoDriver megvalósítást használják. Ezért a tesztelők kénytelenek használni a GeckoDriver programot, ha automatizált teszteket akarnak futtatni a Mozilla Firefox 47.0+ verzióján. De a nagy kérdés - mi az előny?

A GeckoDriver használatának legfőbb előnye az alapértelmezett Firefox illesztőprogrammal szemben a Kompatibilitás . A GeckoDriver a W3C WebDriver protokollt használja a szelénnel való kommunikációhoz. A W3C egy univerzálisan meghatározott szabvány a Web Driver számára. Ez azt jelenti, hogy a Selenium fejlesztőknek (a Selenium bázist kódoló embereknek) nem kell minden egyes böngészőverzióhoz létrehozniuk a Web Driver új verzióját. Ugyanaz a web-illesztőprogram több böngészőverzióhoz is használható. Ezért a GeckoDriver előnyben részesítve a Firefox illesztőprogram korábbi megvalósításához képest.

Töltse le és telepítse a Gecko illesztőprogramot:

A Gecko Driver futtatható fájlként érhető el, amely letölthető a rendszerről. Az alábbiakban felsoroljuk a gecko illesztőprogram letöltésének lépéseit.

1. lépés: Ezen az oldalon https://github.com/mozilla/geckodriver/releases válassza ki az operációs rendszerének megfelelő verziót a GeckoDriver letöltéséhez.

2. lépés: Miután a ZIP fájl letöltése befejeződött, bontsa ki a ZIP fájl tartalmát egy fájlmappába

3. lépés) Jegyezze fel az illesztőprogram kibontásának helyét. A hely később felhasználásra kerül az illesztőprogram példányosítására.

A GeckoDriver inicializálásának módjai:

A GeckoDriver inicializálásának három különböző módja van.

1. A DesiredCapability használata:

Először állítsa be a Gecko Driver rendszer tulajdonságát.

Szintaxis:

System.setProperty ("webdriver.gecko.driver", "A geckdriver.exe fájl elérési útja");

Példa:

System.setProperty ("webdriver.gecko.driver", "D: \\ Letöltések \\ GeckoDriver.exe");

Ezután állítsa be a kívánt képességeket.

A kívánt képességek segítenek a Seleniumnak megérteni a böngésző nevét, verzióját és operációs rendszerét az automatizált tesztek végrehajtásához. Az alábbiakban látható a gekkó illesztőprogram beállításának kódja a DesiredCapilities osztály használatával.

DesiredCapability képességek = DesiredCapability.firefox ();képességek.setCapability ("marionett", igaz);

Itt van a teljes kód

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapability képességek = DesiredCapability.firefox ();képességek.setCapability ("marionett", igaz);driver = új FirefoxDriver (képességek);

2. Marionette tulajdonság használata:

A Gecko illesztőprogram inicializálható a marionette tulajdonság használatával, az alábbiak szerint

System.setProperty ("webdriver.gecko.driver", "D: \\ Letöltések \\ GeckoDriver.exe");

Ha a gecko illesztőprogramot a fenti módszerrel inicializálják, a szükséges képességek kódja nem szükséges.

3. A FirefoxOptions használata:

A Mozilla Firefox 47+ verziója marionette illesztőprogrammal rendelkezik, mint régi rendszer. Ezt kihasználva a marionette driver meghívható a Firefox Options segítségével az alábbiak szerint

FirefoxOptions options = new FirefoxOptions ();options.setLegacy (true);

Kód a Firefox indításához a Gecko illesztőprogram segítségével:

com.guru99.demo csomag;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;nyilvános osztály GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";nyilvános WebDriver illesztőprogram;@Előttpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapability képességek = DesiredCapability.firefox ();képességek.setCapability ("marionett", igaz);driver = új FirefoxDriver (képességek);}@Tesztpublic void navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Utánpublic void endTest () {driver.quit ();}}

Kód Magyarázat:

@Before módszer:

Kezdetben a gecko illesztőprogram rendszer tulajdonságát a geckdriver.exe fájl letöltési helyére kell beállítanunk. Igaznak kell állítanunk a marionette tulajdonságot a Selenium számára, hogy a Marionette protokollt használja a Gecko Driver kommunikációjához. Végül el kell indítanunk a Firefox böngészőpéldányt a kívánt képességek objektumának felhasználásával.

Az alábbi állítások segítenek a fenti feladat megvalósításában.

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapability képességek = DesiredCapability.firefox ();képességek.setCapability ("marionett", igaz);driver = új FirefoxDriver (képességek);

@Teszt módszer:

A felhasználó által megadott URL-re navigálunk a Selenium web-illesztőprogram által biztosított beépített "get" módszerrel. Az alábbi állítás segít elérni ugyanezt.

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

@A módszer után:

Végül bezárjuk a böngészőpéldányt a quit módszerrel.

driver.quit ();

Nem Gecko szkriptjének módosítása Gecko névre:

A Selenium 3 előtt használt nem gecko illesztőprogram szkript egyszerű volt. Létre kell hoznunk egy Firefox illesztőprogram példányát, és a példány változót kell használnunk.

@Előttpublic void startBrowser () {illesztőprogram = new FirefoxDriver ();}

A gekkóvá konvertáláshoz egyszerűen hozzá kell adnia egy kódsort

@Előttpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Letöltések \\ GeckoDriver.exe");illesztőprogram = new FirefoxDriver ();}

Gyakori kivétel történt a Gecko Driver használata közben:

Az alábbiakban felsoroljuk azokat a gyakori kivételeket, amelyek a Gecko Driver használata közben és felbontással fordulnak elő.

1. Az illesztőprogram futtatható fájljának elérési útját a webdriver.gecko.driver rendszer tulajdonságának kell megadnia:

Ez a kivétel akkor fordul elő, amikor a felhasználó megpróbálja példányosítani a Firefox illesztőprogramot anélkül, hogy beállítaná a gecko illesztőprogram rendszer tulajdonságait. Ezt általában a Selenium kezdői végzik, akik nincsenek tisztában a Selenium 3 és a Selenium korábbi verzióinak változásával.

A fenti kivétel a gecko illesztőprogram rendszer tulajdonságának beállítása a geckodriver.exe fájl helyével az alábbiak szerint

System.setProperty ("webdriver.gecko.driver", "D: \\ Letöltések \\ geckodriver.exe");

Felhívjuk figyelmét, hogy a Mozilla Firefox illesztőprogram példányának létrehozása előtt be kell állítania a gecko illesztőprogram tulajdonságait.

2. A Firefox nem csatlakozik kivétel:

org.openqa.selenium.firefox.NotConnectedException: Nem sikerült csatlakozni a 127.0.0.1 hoszthoz a 7055-ös porton 45000 ms után.

Ez a kivétel általában akkor fordul elő, amikor a Firefox verzióját frissítették a legújabb verzióra. Ennek a kivételnek az a megoldása, hogy frissítse a szelén jar fájlt és a gecko illesztőprogramot a legújabb verzióra, és ugyanazt használja.

3. A munkamenet nem létrehozott kivétel:

org.openqa.selenium.SessionNotCreatedException: Nem lehet új távoli munkamenetet létrehozni.

Ez a kivétel a Selenium és a Gecko illesztőprogram közötti kompatibilitási problémák miatt következik be. A Gecko illesztőprogram a Firefox 47-es vagy újabb verziójával működik. Megoldható a Firefox verziójának 47-es vagy újabb verzióra történő frissítésével.

4. Csatlakozás elutasított kivétel:

WebDriver kivétel: a kapcsolat megtagadva

Ez a kivétel az az üzenet, amelyet akkor generálnak, amikor a webillesztő nem tud kapcsolatot létesíteni a Firefoxszal. A következő technikák bármelyikével megoldható.

  • Használja a driver.quit () metódust a webes illesztőprogram korábbi példányainak megsemmisítésére
  • Az automatikus tesztek végrehajtása előtt tisztítsa meg a böngésző gyorsítótárát
  • Tisztítsa meg a projekt munkaterületét az Eclipse IDE-n belül
  • Mindig használja a szelén gecko illesztőprogram legújabb verzióját és a Firefox böngésző legújabb verzióját