Gecko (Marionette) Driver Selenium: Stažení, instalace, použití s ​​Firefoxem

Obsah:

Anonim

Co je Gecko Driver?

Termín Gecko znamená modul webového prohlížeče, který je zabudován do prohlížeče Mozilla Firefox. Ovladač Gecko funguje jako proxy mezi klienty s povoleným Web Driver (Eclipse, Netbeans atd.) A prohlížečem Mozilla Firefox. Stručně řečeno, ovladač Gecko funguje jako spojovací článek mezi testy Selenium Web Driver a prohlížečem Mozilla Firefox.

Před Selenium 3 byl prohlížeč Mozilla Firefox výchozím prohlížečem pro Selenium. Po Selenium 3 musí testeři inicializovat skript, aby mohli explicitně používat Firefox pomocí GeckoDriver. Selenium používá protokol W3C Webdriver k odesílání požadavků na GeckoDriver, který je překládá do protokolu s názvem Marionette. Firefox porozumí příkazům přenášeným ve formě protokolu Marionette a provede je.

Výhoda použití ovladače Gecko

Selenium Webdriver verze 2.53 není kompatibilní s Mozilla Firefox verze 47.0+. Ovladač Firefox používaný v dřívějších verzích Mozilla Firefox bude ukončen a bude použita pouze implementace GeckoDriver. Proto jsou testeři nuceni používat GeckoDriver, pokud chtějí spouštět automatické testy na Mozilla Firefox verze 47.0+. Ale velká otázka - jaká je výhoda?

Hlavní výhodou používání GeckoDriveru na rozdíl od výchozího ovladače Firefoxu je kompatibilita . GeckoDriver používá ke komunikaci se selenem protokol W3C WebDriver . W3C je univerzálně definovaný standard pro webový ovladač. To znamená, že vývojáři selenu (lidé, kteří kódují základnu selenu) nemusí pro každou verzi prohlížeče vytvářet novou verzi webového ovladače. Stejný webový ovladač lze použít pro více verzí prohlížeče. Proto je GeckoDriver upřednostňován ve srovnání s dřívější implementací ovladače Firefoxu.

Stáhněte a nainstalujte ovladač Gecko:

Ovladač Gecko 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) Na této stránce https://github.com/mozilla/geckodriver/releases vyberte příslušnou verzi ke stažení GeckoDriver podle vašeho operačního systému

Krok 2) Po dokončení stahování souboru ZIP extrahujte obsah souboru ZIP do složky se soubory

Krok 3) Poznamenejte si místo, kde jste extrahovali ovladač. Pozice bude použita později k vytvoření instance ovladače.

Způsoby inicializace GeckoDriver:

GeckoDriver lze inicializovat třemi různými způsoby.

1. Používání DesiredCapabilities:

Nejprve nastavte systémovou vlastnost pro Gecko Driver.

Syntax:

System.setProperty ("webdriver.gecko.driver", "Cesta k souboru geckdriver.exe");

Příklad:

System.setProperty ("webdriver.gecko.driver", "D: \\ Stahování \\ GeckoDriver.exe");

Dále nastavte požadované schopnosti.

Desired Capabilities help Selenium to understand the browser name, version and operating system to execute the automated tests. Níže je uveden kód pro nastavení ovladače gecko pomocí třídy DesiredCapabilities.

DesiredCapabilities capabilities = DesiredCapabilities.firefox ();capabilities.setCapability ("loutka", true);

Zde je kompletní kód

System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities capabilities = DesiredCapabilities.firefox ();capabilities.setCapability ("loutka", true);driver = new FirefoxDriver (capabilities);

2. Použití vlastnosti loutky:

Ovladač Gecko lze také inicializovat pomocí loutkové vlastnosti, jak je uvedeno níže

System.setProperty ("webdriver.gecko.driver", "D: \\ Stahování \\ GeckoDriver.exe");

Pokud je ovladač gecko inicializován pomocí výše uvedené metody, kód požadovaných funkcí není vyžadován.

3. Používání možností Firefoxu:

Mozilla Firefox verze 47+ má ovladač loutek jako starší systém. S využitím této výhody lze ovladač loutek vyvolat pomocí Možnosti Firefoxu, jak je uvedeno níže

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

Kód pro spuštění Firefoxu pomocí ovladače Gecko:

balíček com.guru99.demo;importovat org.junit.After;import org.junit.Before;import org.junit.Test;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;importovat org.openqa.selenium.remote.DesiredCapabilities;veřejná třída GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";veřejný ovladač WebDriver;@Předpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);DesiredCapabilities capabilities = DesiredCapabilities.firefox ();capabilities.setCapability ("loutka", true);driver = new FirefoxDriver (capabilities);}@Testpublic void navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Popublic void endTest () {driver.quit ();}}

Vysvětlení kódu:

@ Před metodou:

Zpočátku musíme nastavit systémovou vlastnost ovladače gecko na umístění pro stahování souboru geckdriver.exe. Aby se Selenium mohlo ke komunikaci s ovladačem Gecko používat protokol Marionette, musíme nastavit vlastnost loutky na true. Nakonec musíme spustit instanci prohlížeče Firefox 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 ("loutka", true);driver = new FirefoxDriver (capabilities);

@Testovací metoda:

Navigujeme na URL zadanou uživatelem pomocí vestavěné metody „get“ poskytované webovým ovladačem Selenium. Níže uvedené prohlášení pomáhá dosáhnout stejného.

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

@ Metoda After:

Nakonec zavíráme instanci prohlížeče pomocí metody quit.

driver.quit ();

Upravit skript pro jiné než gecko na gecko:

Skript ovladače jiného než gecko použitý před Selenium 3 byl přímočarý. Musíme vytvořit instanci ovladače Firefoxu a použít proměnnou instance.

@Předpublic void startBrowser () {driver = new FirefoxDriver ();}

Chcete-li převést na gecko, musíte jednoduše přidat jeden řádek kódu

@Předpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Stahování \\ 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, ke kterým dochází při používání ovladače Gecko as rozlišením.

1. Cesta k spustitelnému ovladači musí být nastavena pomocí vlastnosti systému webdriver.gecko.driver:

K této výjimce dochází, když se uživatel pokusí vytvořit instanci ovladače Firefoxu bez nastavení vlastnosti systému pro ovladač gecko. To obvykle provádějí začátečníci se selenem, kteří si nejsou vědomi změn provedených od předchozích verzí selenu 3 k selenu.

Rozlišení výše uvedené výjimky spočívá v nastavení systémové vlastnosti ovladače gecko s umístěním souboru geckodriver.exe, jak je uvedeno níže

System.setProperty ("webdriver.gecko.driver", "D: \\ Stahování \\ geckodriver.exe");

Před vytvořením instance ovladače Mozilla Firefox musíte nastavit vlastnost ovladače gecko.

2. Firefox není připojen Výjimka:

org.openqa.selenium.firefox.NotConnectedException: Nelze se připojit k hostiteli 127.0.0.1 na portu 7055 po 45000 ms.

K této výjimce obvykle dochází, když byla verze Firefoxu upgradována na nejnovější verzi. Řešením této výjimky je aktualizace souboru selenium jar a ovladače gecko na nejnovější verzi a použití stejné.

3. Výjimka relace nebyla vytvořena:

org.openqa.selenium.SessionNotCreatedException: Nelze vytvořit novou vzdálenou relaci.

K této výjimce dochází kvůli problémům s kompatibilitou mezi ovladačem Selenium a Gecko. Ovladač Gecko funguje s Firefoxem verze 47 nebo vyšší. To lze vyřešit aktualizací verze Firefoxu na 47 nebo vyšší.

4. Výjimka odmítnutá připojením:

Výjimka WebDriver: Připojení odmítnuto

Tato výjimka je zpráva generovaná, když webový ovladač není schopen navázat spojení s Firefoxem. Lze jej vyřešit pomocí kterékoli z následujících technik.

  • Pomocí metody driver.quit () zničte dřívější instance webového ovladače
  • Před provedením automatických testů vyčistěte mezipaměť prohlížeče
  • Vyčistěte pracovní prostor projektu v prostředí Eclipse IDE
  • Vždy používejte nejnovější verzi ovladače gecko selenu a nejnovější verzi prohlížeče Firefox