Stáhněte si Geckodriver pro Firefox & Selenium

⚡ Chytré shrnutí

GeckoDriver pro Firefox a Selenium funguje jako proxy mezi klienty W3C WebDriver a Mozillou Firefox, překlad příkazů do MariProtokol Onette. Tato příručka vysvětluje instalaci, techniky inicializace, ukázkový kód, běžné výjimky a výhody kompatibility s jádrem.

  • 🦊 Role mostu: GeckoDriver se připojuje Selenium Klienti WebDriveru s Firefox s použitím MariOnetteův protokol.
  • ⬇️ První nastavení: Stáhněte si správnou verzi GeckoDriveru z oficiálního repozitáře Mozilly pro váš operační systém.
  • ⚙️ Tři inicializační cesty: Inicializujte ovladač pomocí DesiredCapabilities, systémové vlastnosti marionette, nebo FirefoxMožnosti.
  • 🧪 Ukázkový pracovní postup: Použijte JUnit anotace jako @Before, @Test a @After pro čistou správu životního cyklu prohlížeče.
  • 🛠️ Oprava běžných chyb: Řešení problémů SessionNotCreated a odmítnutí připojení zarovnáním Firefox, Seleniuma verze ovladačů.
  • 🌐 Výhoda W3C: Standard W3C WebDriver poskytuje kompatibilitu napříč verzemi, což snižuje nároky na údržbu automatizačních sad.

GeckoDriver v Selenium

V čem je GeckoDriver Selenium?

Termín Gecko je zkratka pro webový prohlížeč zabudovaný v prohlížeči Mozilla. Firefox prohlížeč. GeckoDriver funguje jako proxy mezi klienty s povoleným WebDriverem (Eclipse, NetBeans, IntelliJ IDEAatd.) a Mozilla Firefox prohlížeč. Stručně řečeno, GeckoDriver slouží jako spojení mezi Selenium Testy WebDriveru a Mozilla Firefox.

Před Selenium 3, Mozilla Firefox prohlížeč byl výchozí prohlížeč Selenium, Po Selenium 3, testeři musí inicializovat skript, který chtějí použít Firefox explicitně prostřednictvím GeckoDriveru. Selenium používá protokol W3C WebDriver k odesílání požadavků do GeckoDriveru, který je překládá do protokolu s názvem Marionette. Firefox pak rozumí příkazům transmitted v Mariformát protokolu onette a spustí je.

Výhody používání GeckoDriveru

Selenium Verze WebDriveru 2.53 není kompatibilní s Mozillou. Firefox verze 47.0+. Dědictví Firefox ovladač používaný v dřívějších verzích Mozilly Firefox buildy byly ukončeny a v současnosti lze použít pouze implementaci GeckoDriver. Testeři proto musí ke spuštění automatizovaných testů v Mozille používat GeckoDriver. Firefox verze 47.0 a vyšší.

Hlavní výhoda použití GeckoDriveru oproti starším systémům Firefox řidič je kompatibilitaGeckoDriver se spoléhá na Protokol W3C WebDriver komunikovat s SeleniumW3C je univerzálně definovaný standard pro WebDriver. To znamená Selenium Vývojáři nemusí vytvářet novou verzi ovladače pro každou verzi prohlížeče. Stejnou implementaci WebDriveru lze použít ve více verzích prohlížeče, a proto je GeckoDriver upřednostňován před starší verzí. Firefox Řidič.

Jak stáhnout a nainstalovat GeckoDriver do Selenium

GeckoDriver je distribuován jako spustitelný soubor, který si můžete stáhnout přímo do svého systému. Postupujte podle níže uvedených kroků pro stažení a instalaci GeckoDriveru. Selenium automatizace.

Krok 1) Vyberte příslušnou verzi.
Na oficiální stránce s vydáním https://github.com/mozilla/geckodriver/releases, vyberte vhodnou verzi GeckoDriveru, která odpovídá vašemu operačnímu systému a architektuře.

Stáhněte a nainstalujte GeckoDriver Selenium

Krok 2) Extracsoubor ZIP.
Jakmile je stahování ZIP souboru dokončeno, např.traculožte jeho obsah do složky ve vašem počítači.

ExtracZIP soubor GeckoDriver

Krok 3) Poznamenejte si umístění řidiče.
Zaznamenejte si cestu ke složce, kam jstetracovladač. Toto umístění bude později použito k vytvoření instance ovladače z testovacího skriptu.

Poznámka k umístění GeckoDriveru

Způsoby inicializace GeckoDriveru

Existují tři různé způsoby, jak inicializovat GeckoDriver ve vašem Selenium testovací skripty. Vyberte si ten, který nejlépe odpovídá vašemu testovacímu frameworku a Selenium verze.

1. Použití DesiredCapabilities

Nejprve nastavte systémovou vlastnost pro GeckoDriver.

Syntaxe:

System.setProperty("webdriver.gecko.driver","Path to geckodriver.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 pochopte název prohlížeče, verzi a operační systém potřebný k provedení automatizovaných testů. Níže je uveden kód pro konfiguraci GeckoDriveru 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ím MariNemovitosti Onette

GeckoDriver lze také inicializovat pomocí vlastnosti marionette, jak je znázorněno níže.

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

Pokud je GeckoDriver inicializován výše uvedenou metodou, kód požadovaných schopností je ne požadovaný.

3. Použitím Firefoxmožnosti

Mozilla Firefox verze 47+ odhaluje Mariovladač onette jako starší systém. Využívá toho MariOvladač Onette lze vyvolat pomocí Firefox Možnosti, jak je uvedeno níže.

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

Code pro spuštění Firefox Používání GeckoDriveru

Následující JUnitpříklad založený na ukazuje kompletní, spustitelný Selenium test, který se spustí Firefox přes GeckoDriver a přejde na demoverzi URL.

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();
    }

}

Code Vysvětlení

@Před metodou

Nejprve jsme nastavili systémovou vlastnost GeckoDriver na umístění pro stahování souboru geckodriver.exe. Vlastnost marionette jsme také nastavili na hodnotu true, aby Selenium používá Mariprotokol Onette pro komunikaci s GeckoDriverem. Nakonec spustíme Firefox instance prohlížeče pomocí objektu Desired Capabilities.

Následující příkazy tohoto nastavení dosahují.

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

@Testovací metoda

Navigujeme k uživatelsky zadanému URL pomocí vestavěného get metoda poskytovaná Selenium WebDriver, jak je znázorněno níže.

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

@Po metodě

Nakonec zavřeme instanci prohlížeče pomocí quit metoda.

driver.quit();

Úprava skriptu pro negekonovský jazyk na gekonovský

Skripty jiné než GeckoDriver používané dříve Selenium 3 byly přímočaré. Jednoduše jste vytvořili instanci Firefox ovladač a použil proměnnou instance.

@Before
public void startBrowser() {
    driver = new FirefoxDriver();
}

Pro převod skriptu pro GeckoDriver stačí přidat pouze jeden řádek kódu, který ukazuje na umístění souboru geckodriver.exe.

@Before
public void startBrowser() {
    System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe");
    driver = new FirefoxDriver();
}

Časté výjimky, ke kterým docházelo při používání GeckoDriveru

Následuje seznam běžných výjimek, ke kterým dochází při používání GeckoDriveru, spolu s jejich řešeními.

K této výjimce dochází, když se uživatel pokusí vytvořit instanci Firefox ovladač bez nastavení systémové vlastnosti pro GeckoDriver. Běžně se vyskytuje u Selenium začátečníci, kteří si nejsou vědomi zavedených změn Selenium 3 ve srovnání s dřívějšími verzemi.

Řešením je nastavit systémovou vlastnost pro GeckoDriver s umístěním souboru geckodriver.exe, jak je uvedeno níže.

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

Upozorňujeme, že před vytvořením instance knihovny Mozilla je nutné nastavit vlastnost GeckoDriver. Firefox Řidič.

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

K této výjimce obvykle dochází, když Firefox verze byla aktualizována na nejnovější verzi. Řešením je aktualizovat obě verze Selenium Aktualizujte soubor JAR a GeckoDriver na nejnovější kompatibilní verze a poté skript znovu spusťte.

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 GeckoDriver. GeckoDriver spolupracuje s Firefox verze 47 nebo vyšší. Problém lze vyřešit aktualizací Firefox verze 47 nebo vyšší.

WebDriver Exception: Connection Refused

Tato výjimka se zobrazí, když WebDriver nedokáže navázat spojení s FirefoxLze to vyřešit pomocí kterékoli z následujících technik.

  • Použití driver.quit() metoda pro zničení dřívějších instancí WebDriveru.
  • Před spuštěním automatizovaných testů vyčistěte mezipaměť prohlížeče.
  • Vyčistěte pracovní prostor projektu v rámci Eclipse SDI.
  • Vždy používejte nejnovější verzi Selenium GeckoDriver spolu s nejnovější stabilní verzí Firefox uvolnění.

Nejčastější dotazy

Ne. GeckoDriver je spustitelný soubor proxy, který implementuje standard W3C WebDriver. Marionette je automatizační protokol zabudovaný do FirefoxGeckoDriver překládá příkazy WebDriveru do Marizprávy onette, které Firefox může provést.

Nejnovější sestavení GeckoDriveru oficiálně cílí Firefox 91 ESR a novější. Vždy si pro ověření minimální a maximální hodnoty zkontrolujte poznámky k verzi GeckoDriver na stránce Mozilly GitHub. Firefox verze podporované staženou verzí.

Přidání GeckoDriver do systémové cesty PATH je volitelné, ale pohodlné. Pokud je v cestě PATH, můžete volání System.setProperty přeskočit. Jinak musíte cestu k ovladači explicitně zadat uvnitř vašeho Selenium testovací skript.

Ano. Nástroje pro testování s podporou umělé inteligence mohou generovat Selenium Kód WebDriveru, lokátory návrhů a automatické opravy nespolehlivých skriptů. Zrychlují rutinní práci, ale pro spolehlivé zpracování je stále nutná lidská kontrola verzí ovladačů, čekacích intervalů a assercí. Firefox automatizace.

Ne. Agenti umělé inteligence v současné době nad protokoly WebDriver spíše než aby je nahrazovali. GeckoDriver zůstává mostem k… Firefox, zatímco vrstvy umělé inteligence přidávají nad rámec stávajícího standardu chytřejší lokátory, samoopravy a tvorbu testů v přirozeném jazyce.

Shrňte tento příspěvek takto: