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