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.

GeckoDriver v Selenium

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

Stáhněte a nainstalujte GeckoDriver Selenium

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

Stáhněte a nainstalujte GeckoDriver Selenium

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.

Stáhněte a nainstalujte GeckoDriver Selenium

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.

K této výjimce dochází, když se uživatel pokusí vytvořit instanci Firefox ovladač bez nastavení systémové vlastnosti pro ovladač gecko. Obvykle to dělají začátečníci Selenium kteří si nejsou vědomi provedených změn Selenium 3 na Selenium předchozí verze.

Řešením pro výše uvedenou výjimku je nastavení systémové vlastnosti pro ovladač gecko s umístěním souboru geckodriver.exe, jak je uvedeno níže

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

Vezměte prosím na vědomí, že před vytvořením instance Mozilly musíte nastavit vlastnost ovladače gecko Firefox Řidič.

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.

Tato výjimka obvykle nastane, když Firefox verze byla aktualizována na nejnovější verzi. Řešením této výjimky je aktualizovat soubor selenium jar a ovladač gecko na nejnovější verzi a použít stejnou.

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session.

K této výjimce dochází kvůli problémům s kompatibilitou mezi Selenium a řidič Gecko. Gecko driver pracuje s Firefox verze 47 nebo vyšší. Dá se to vyřešit aktualizací Firefox verze na 47 nebo vyšší.

WebDriver Exception: Connection Refused

Tato výjimka je zpráva generovaná, když webový ovladač nemůže navázat spojení s Firefox. Může být vyřešen pomocí kterékoli z následujících technik.

  • Použijte driver.quit() metoda ke zničení dřívějších instancí webového ovladače
  • Před provedením automatických testů vyčistěte mezipaměť prohlížeče
  • Vyčistěte pracovní plochu projektu uvnitř Eclipse IDE
  • Vždy používejte nejnovější verzi ovladače selenium gecko a nejnovější verzi Firefox prohlížeč

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č.