Stáhněte si Geckodriver pro Firefox & Selenium
V čem je GeckoDriver Selenium?
Termín Gecko znamená engine webového prohlížeče, který je zabudován v Mozille Firefox prohlížeč. Ovladač Gecko funguje jako proxy mezi klienty s podporou Web Driver (Eclipse, Netbeans atd.) a Mozilla Firefox prohlížeč. Stručně řečeno, ovladač Gecko funguje jako spojovací článek Selenium Testy webových ovladačů a Mozilla Firefox prohlížeč.
Před Selenium 3, Mozilla Firefox prohlížeč byl výchozí prohlížeč Selenium, Po Selenium 3, testeři potřebují inicializovat skript k použití Firefox explicitně pomocí GeckoDriver. Selenium používá protokol W3C Webdriver k odesílání požadavků GeckoDriver, který je překládá do protokolu s názvem Marionette. Firefox bude rozumět příkazům přenášeným ve formě Marionete protokol a provede je.
Jak stáhnout a nainstalovat GeckoDriver do Selenium
Gecko Driver je k dispozici jako spustitelný soubor, který lze stáhnout do systému. Níže je uveden seznam kroků ke stažení ovladače gecko.
Krok 1 ) Vyberte příslušnou verzi.
Na této stránce https://github.com/mozilla/geckodriver/releases ,Vyberte vhodnou verzi pro stažení GeckoDriver na základě vašeho operačního systému
Krok 2) Rozbalte soubor ZIP.
Po dokončení stahování souboru ZIP rozbalte obsah souboru ZIP do složky se soubory
Krok 3) Všimněte si umístění.
Poznamenejte si umístění, kam jste ovladač extrahovali. Poloha bude později použita k vytvoření instance ovladače.
Způsoby inicializace GeckoDriver
GeckoDriver lze inicializovat třemi různými způsoby.
1. Použití DesiredCapabilities
Nejprve nastavte vlastnost systému pro Gecko Driver.
Syntaxe:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
Příklad:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Dále nastavte požadované schopnosti.
Požadované schopnosti pomáhají Selenium abyste porozuměli názvu prohlížeče, verzi a operačnímu systému pro provádění automatických testů. Níže je uveden kód pro nastavení ovladače gecko pomocí třídy DesiredCapabilities.
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true);
Zde je úplný kód
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
2. Použití loutkové vlastnosti
Gecko ovladač lze také inicializovat pomocí vlastnosti marionette, jak je uvedeno níže
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Pokud je ovladač gecko inicializován pomocí výše uvedené metody, kód pro požadované schopnosti ano ne požadovaný.
3. Použitím Firefoxmožnosti
Mozilla Firefox verze 47+ má loutkový ovladač jako starší systém. Využitím toho lze řidiče loutky přivolat pomocí Firefox Možnosti jako níže
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Kód pro spuštění firefoxu pomocí ovladače Gecko
package com.guru99.demo; 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; public class GeckoDriverDemo { String driverPath = "D:\\Guru99Demo\\GeckoDriver.exe"; public WebDriver driver; @Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); driver = new FirefoxDriver(capabilities); } @Test public void navigateToUrl() { driver.get("https://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } }
Vysvětlení kódu
@Před metodou
Nejprve musíme nastavit systémovou vlastnost pro ovladač gecko na umístění stahování souboru geckdriver.exe. Musíme nastavit vlastnost marionette na true for Selenium použít Marionette protokol pro komunikaci s Gecko Driver. Nakonec musíme začít Firefox instance prohlížeče pomocí objektu pro požadované schopnosti.
Níže uvedená prohlášení pomáhají dosáhnout výše uvedeného úkolu.
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
@Testovací metoda
Přesuneme se na uživatelem zadanou adresu URL pomocí vestavěné metody „get“, kterou poskytuje Selenium webový ovladač. Níže uvedené prohlášení pomáhá dosáhnout stejného.
driver.get("https://demo.guru99.com/selenium/guru99home/");
@Po metodě
Nakonec zavřeme instanci prohlížeče pomocí metody quit.
driver.quit();
Upravte skript pro non-Gecko na Gecko
Dříve používaný skript ovladače bez gecko Selenium 3 byla přímočará. Potřebujeme vytvořit instanci Firefox ovladač a použijte proměnnou instance.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
Chcete-li převést na gecko, musíte jednoduše přidat jeden řádek kódu
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
Při používání ovladače Gecko došlo k běžným výjimkám
Následuje seznam běžných výjimek, které se vyskytují při používání ovladače Gecko a s rozlišením.
Výhoda použití Gecko Driver
Selenium Webdriver verze 2.53 není kompatibilní s Mozillou Firefox verze 47.0+. The Firefox ovladač používaný v dřívějších verzích Mozilly Firefox bude ukončena a bude použita pouze implementace GeckoDriver. Testeři jsou proto nuceni používat GeckoDriver, pokud chtějí spouštět automatické testy na Mozille Firefox verze 47.0+. Ale velká otázka – jaká je výhoda?
Hlavní výhodou použití GeckoDriver oproti výchozímu Firefox řidič je Kompatibilita. GeckoDriver používá Protokol W3C WebDriver komunikovat s Selenium. W3C je univerzálně definovaný standard pro Web Driver. To znamená Selenium Vývojáři (Lidé, kteří kódují Selenium base) nemusí vytvářet novou verzi webového ovladače pro každou verzi prohlížeče. Stejný webový ovladač lze použít pro více verzí prohlížeče. Proto je GeckoDriver preferován ve srovnání s dřívější implementací Firefox Řidič.