Pobierz Geckodriver dla Firefox & Selenium

โšก Inteligentne podsumowanie

GeckoDriver dla Firefox oraz Selenium dziaล‚a jako serwer proxy miฤ™dzy klientami W3C WebDriver a Mozillฤ… Firefox, tล‚umaczenie poleceล„ na MariProtokรณล‚ onette. W tym przewodniku wyjaล›niono instalacjฤ™, techniki inicjalizacji, przykล‚adowy kod, typowe wyjฤ…tki i podstawowe zalety zgodnoล›ci.

  • ๐ŸฆŠ Rola mostka: GeckoDriver ล‚ฤ…czy Selenium Klienci WebDriver z Firefox uลผywajฤ…c Mariprotokรณล‚ onette.
  • (Tj. Konfiguracja pierwsza: Pobierz prawidล‚owฤ… wersjฤ™ GeckoDriver z oficjalnego repozytorium Mozilla dla swojego systemu operacyjnego.
  • โš™๏ธ Trzy ล›cieลผki inicjujฤ…ce: Zainicjuj sterownik za pomocฤ… DesiredCapabilities, wล‚aล›ciwoล›ci systemu marionetkowego lub FirefoxOpcje.
  • ๐Ÿงช Przykล‚adowy przepล‚yw pracy: Zastosowanie JUnit adnotacje takie jak @Before, @Test i @After umoลผliwiajฤ… czyste zarzฤ…dzanie cyklem ลผycia przeglฤ…darki.
  • ๐Ÿ› ๏ธ. Napraw typowe bล‚ฤ™dy: Rozwiฤ…ลผ problemy z sesjฤ… nieutworzono i odrzuconym poล‚ฤ…czeniem, wyrรณwnujฤ…c Firefox, Seleniumi wersje sterownikรณw.
  • ๐ŸŒ Zaleta W3C: Standard W3C WebDriver zapewnia kompatybilnoล›ฤ‡ miฤ™dzy wersjami, zmniejszajฤ…c potrzebฤ™ konserwacji pakietรณw automatyzacji.

GeckoDriver w Selenium

W czym jest GeckoDriver Selenium?

Termin Gecko oznacza silnik przeglฤ…darki internetowej wbudowany w Mozillฤ™ Firefox Przeglฤ…darka. GeckoDriver dziaล‚a jako serwer proxy miฤ™dzy klientami obsล‚ugujฤ…cymi WebDriver (Eclipse, NetBeans, IntelliJ IDEA, itd.) i Mozilla Firefox Przeglฤ…darka. Krรณtko mรณwiฤ…c, GeckoDriver sล‚uลผy jako ล‚ฤ…cznik miฤ™dzy Selenium Testy WebDriver i Mozilla Firefox.

Przed Selenium 3, Mozilla Firefox przeglฤ…darka byล‚a domyล›lnฤ… przeglฤ…darkฤ… dla Selenium, Po Selenium 3. Testerzy muszฤ… zainicjowaฤ‡ skrypt, aby go uลผyฤ‡ Firefox jawnie poprzez GeckoDriver. Selenium uลผywa protokoล‚u W3C WebDriver do wysyล‚ania ลผฤ…daล„ do GeckoDriver, ktรณry tล‚umaczy je na protokรณล‚ o nazwie Marionet. Firefox nastฤ™pnie rozumie polecenia transmitted w Mariformat protokoล‚u onette i je wykonuje.

Zaleta korzystania z GeckoDriver

Selenium Wersja WebDriver 2.53 nie jest zgodna z Mozillฤ… Firefox wersja 47.0+. Dziedzictwo Firefox sterownik uลผywany we wczeล›niejszych wersjach Mozilli Firefox kompilacje zostaล‚y wycofane i obecnie moลผna korzystaฤ‡ wyล‚ฤ…cznie z implementacji GeckoDriver. W zwiฤ…zku z tym testerzy muszฤ… uลผywaฤ‡ GeckoDriver do uruchamiania automatycznych testรณw w Mozilli. Firefox wersja 47.0 i wyลผsza.

Gล‚รณwnฤ… zaletฤ… korzystania z GeckoDriver w porรณwnaniu ze starszymi wersjami jest: Firefox kierowca jest zgodnoล›ฤ‡. GeckoDriver opiera siฤ™ na Protokรณล‚ W3C WebDriver komunikowaฤ‡ siฤ™ z Selenium. W3C to uniwersalnie zdefiniowany standard dla WebDriver. Oznacza to, Selenium Programiล›ci nie muszฤ… tworzyฤ‡ nowej wersji sterownika dla kaลผdej wersji przeglฤ…darki. Tฤ™ samฤ… implementacjฤ™ WebDriver moลผna stosowaฤ‡ w wielu wersjach przeglฤ…darek, dlatego GeckoDriver jest preferowany w porรณwnaniu ze starszym. Firefox kierowca.

Jak pobraฤ‡ i zainstalowaฤ‡ GeckoDriver w Selenium

GeckoDriver jest dystrybuowany jako plik wykonywalny, ktรณry moลผna pobraฤ‡ bezpoล›rednio do systemu. Wykonaj poniลผsze kroki, aby pobraฤ‡ i zainstalowaฤ‡ GeckoDriver. Selenium automatyzacja.

Krok 1) Wybierz odpowiedniฤ… wersjฤ™.
Na oficjalnej stronie wydaล„ https://github.com/mozilla/geckodriver/releasesWybierz odpowiedniฤ… kompilacjฤ™ GeckoDriver, ktรณra odpowiada Twojemu systemowi operacyjnemu i architekturze.

Pobierz i zainstaluj GeckoDriver w Selenium

Krok 2) Extracdo pliku ZIP.
Po zakoล„czeniu pobierania pliku ZIP, np.tracjego zawartoล›ฤ‡ do folderu na swoim komputerze.

ExtracPlik ZIP GeckoDriver

Krok 3) Zwrรณฤ‡ uwagฤ™ na lokalizacjฤ™ sterownika.
Zapisz ล›cieลผkฤ™ do folderu, w ktรณrym siฤ™ znajdujesztracZainstalowano sterownik. Ta lokalizacja zostanie pรณลบniej uลผyta do utworzenia instancji sterownika ze skryptu testowego.

Uwaga: lokalizacja GeckoDriver

Sposoby inicjalizacji GeckoDriver

Istniejฤ… trzy rรณลผne sposoby inicjalizacji GeckoDriver w Twoim Selenium skrypty testowe. Wybierz ten, ktรณry najlepiej pasuje do Twojego ล›rodowiska testowego i Selenium wersja.

1. Korzystanie z poลผฤ…danych moลผliwoล›ci

Najpierw ustaw wล‚aล›ciwoล›ฤ‡ systemowฤ… dla GeckoDriver.

Skล‚adnia:

System.setProperty("webdriver.gecko.driver","Path to geckodriver.exe file");

Przykล‚ad:

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

Nastฤ™pnie ustaw poลผฤ…dane moลผliwoล›ci. Poลผฤ…dane moลผliwoล›ci pomagajฤ… Selenium Poznaj nazwฤ™ przeglฤ…darki, jej wersjฤ™ i system operacyjny wymagane do wykonania testรณw automatycznych. Poniลผej znajduje siฤ™ kod umoลผliwiajฤ…cy konfiguracjฤ™ GeckoDriver za pomocฤ… klasy DesiredCapabilities.

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

Oto peล‚ny kod:

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

2. Korzystanie MariNieruchomoล›ฤ‡ onette

GeckoDriver moลผna rรณwnieลผ zainicjowaฤ‡ za pomocฤ… wล‚aล›ciwoล›ci marionette, jak pokazano poniลผej.

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

Jeล›li GeckoDriver zostanie zainicjowany za pomocฤ… powyลผszej metody, kod Desired Capabilities bฤ™dzie nie wymagane.

3. Korzystanie FirefoxOpcje

Mozilla Firefox wersja 47+ ujawnia Maristerownik onette jako starszy system. Korzystajฤ…c z tego, Maristerownik onette moลผna wywoล‚aฤ‡ przez Firefox Opcje pokazane poniลผej.

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

Code do uruchomienia Firefox Korzystanie z GeckoDriver

Poniลผszy JUnit-przykล‚ad pokazuje kompletny, moลผliwy do uruchomienia Selenium test, ktรณry uruchamia Firefox przez GeckoDriver i przechodzi do wersji demonstracyjnej 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 Wyjaล›nienie

@Przed metodฤ…

Poczฤ…tkowo ustawiliล›my wล‚aล›ciwoล›ฤ‡ systemowฤ… dla GeckoDriver na lokalizacjฤ™ pobierania pliku geckodriver.exe. Ustawiliล›my rรณwnieลผ wล‚aล›ciwoล›ฤ‡ marionette na true, wiฤ™c Selenium uลผywa MariProtokรณล‚ onette do komunikacji z GeckoDriver. Na koniec uruchamiamy Firefox wystฤ…pienie przeglฤ…darki przy uลผyciu obiektu Desired Capabilities.

Poniลผsze instrukcje realizujฤ… tฤ™ konfiguracjฤ™.

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

@Metoda badania

Przechodzimy do wskazanego przez uลผytkownika URL uลผywajฤ…c wbudowanego get metoda dostarczona przez Selenium WebDriver, jak pokazano poniลผej.

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

@Po metodzie

Na koniec zamykamy instancjฤ™ przeglฤ…darki za pomocฤ… quit Metoda.

driver.quit();

Modyfikacja skryptu dla jฤ™zyka innego niลผ Gecko na Gecko

Skrypty Non-GeckoDriver uลผywane wczeล›niej Selenium 3 byล‚y proste. Po prostu utworzyล‚eล› instancjฤ™ Firefox sterownik i uลผyล‚ zmiennej instancji.

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

Aby przekonwertowaฤ‡ skrypt dla GeckoDriver, wystarczy dodaฤ‡ jednฤ… linijkฤ™ kodu wskazujฤ…cฤ… na lokalizacjฤ™ geckodriver.exe.

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

Podczas korzystania z GeckoDriver wystฤ…piล‚y typowe wyjฤ…tki

Poniลผej znajduje siฤ™ lista typowych wyjฤ…tkรณw wystฤ™pujฤ…cych podczas korzystania z GeckoDriver wraz ze sposobami ich rozwiฤ…zania.

Ten wyjฤ…tek wystฤ™puje, gdy uลผytkownik prรณbuje utworzyฤ‡ instancjฤ™ Firefox sterownik bez ustawiania wล‚aล›ciwoล›ci systemowej dla GeckoDriver. Czฤ™sto wystฤ™puje w przypadku Selenium poczฤ…tkujฤ…cy, ktรณrzy nie sฤ… ล›wiadomi wprowadzonych zmian Selenium 3 w porรณwnaniu do wczeล›niejszych wersji.

Rozwiฤ…zaniem jest ustawienie wล‚aล›ciwoล›ci systemowej GeckoDriver na lokalizacjฤ™ pliku geckodriver.exe, jak pokazano poniลผej.

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

Naleลผy pamiฤ™taฤ‡, ลผe przed utworzeniem instancji Mozilla naleลผy ustawiฤ‡ wล‚aล›ciwoล›ฤ‡ GeckoDriver Firefox kierowca.

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

Ten wyjฤ…tek wystฤ™puje zwykle, gdy Firefox Wersja zostaล‚a zaktualizowana do najnowszej wersji. Rozwiฤ…zaniem jest aktualizacja obu Selenium Plik JAR i GeckoDriver naleลผy zaktualizowaฤ‡ do najnowszych zgodnych wersji, a nastฤ™pnie ponownie uruchomiฤ‡ skrypt.

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

Ten wyjฤ…tek wystฤ™puje z powodu problemรณw ze zgodnoล›ciฤ… miฤ™dzy Selenium i GeckoDriver. GeckoDriver wspรณล‚pracuje z Firefox Wersja 47 lub nowsza. Problem moลผna rozwiฤ…zaฤ‡ poprzez aktualizacjฤ™ Firefox wersja 47 lub wyลผsza.

WebDriver Exception: Connection Refused

Ten wyjฤ…tek pojawia siฤ™, gdy WebDriver nie moลผe nawiฤ…zaฤ‡ poล‚ฤ…czenia z FirefoxMoลผna go rozwiฤ…zaฤ‡, stosujฤ…c dowolnฤ… z nastฤ™pujฤ…cych technik.

  • Uลผyj driver.quit() metoda niszczenia wczeล›niejszych instancji WebDriver.
  • Przed uruchomieniem testรณw automatycznych wyczyล›ฤ‡ pamiฤ™ฤ‡ podrฤ™cznฤ… przeglฤ…darki.
  • Wyczyล›ฤ‡ obszar roboczy projektu w Eclipse SDI.
  • Zawsze uลผywaj najnowszej wersji Selenium GeckoDriver wraz z najnowszฤ… wersjฤ… stabilnฤ… Firefox zwolniฤ‡.

FAQ

Nie. GeckoDriver to plik wykonywalny proxy, ktรณry implementuje standard W3C WebDriver. Marionette to protokรณล‚ automatyzacji wbudowany w Firefox. GeckoDriver tล‚umaczy polecenia WebDriver na Mariwiadomoล›ci onette, ktรณre Firefox moลผe wykonaฤ‡.

Najnowsze kompilacje GeckoDriver oficjalnie majฤ… na celu Firefox 91 ESR i nowsze. Zawsze sprawdzaj informacje o wydaniu GeckoDriver na stronie GitHub Mozilli, aby potwierdziฤ‡ minimalne i maksymalne Firefox wersje obsล‚ugiwane przez pobranฤ… kompilacjฤ™.

Dodanie GeckoDriver do ล›cieลผki systemowej PATH jest opcjonalne, ale wygodne. Jeล›li znajduje siฤ™ w PATH, moลผesz pominฤ…ฤ‡ wywoล‚anie System.setProperty. W przeciwnym razie musisz jawnie okreล›liฤ‡ ล›cieลผkฤ™ do sterownika w swoim pliku. Selenium skrypt testowy.

Tak. Narzฤ™dzia testowe wspomagane sztucznฤ… inteligencjฤ… mogฤ… generowaฤ‡ Selenium Kod WebDriver, sugerowane lokalizatory i automatyczne naprawianie niestabilnych skryptรณw. Przyspieszajฤ… one rutynowฤ… pracฤ™, ale rฤ™czna weryfikacja wersji sterownikรณw, oczekiwanie i potwierdzenia sฤ… nadal niezbฤ™dne dla zapewnienia niezawodnoล›ci. Firefox automatyzacja.

Nie. Agenci AI obecnie dziaล‚ajฤ… na protokoล‚ach WebDriver, zamiast je zastฤ™powaฤ‡. GeckoDriver pozostaje pomostem do Firefox, podczas gdy warstwy sztucznej inteligencji dodajฤ… inteligentniejsze lokalizatory, samonaprawianie i tworzenie testรณw w jฤ™zyku naturalnym na bazie istniejฤ…cego standardu.

Podsumuj ten post nastฤ™pujฤ…co: