Preuzmite Geckodriver za Firefox & Selenium

โšก Pametni saลพetak

GeckoDriver za Firefox i Selenium djeluje kao proxy izmeฤ‘u W3C WebDriver klijenata i Mozille Firefox, prevodeฤ‡i naredbe u Marionette protokol. Ovaj vodiฤ objaลกnjava instalaciju, tehnike inicijalizacije, primjer koda, uobiฤajene iznimke i prednosti kompatibilnosti jezgre.

  • ๐ŸฆŠ Uloga mosta: GeckoDriver se povezuje Selenium WebDriver klijenti s Firefox pomoฤ‡u Marionette protokol.
  • โฌ‡๏ธ Prvo postavljanje: Preuzmite ispravnu verziju GeckoDrivera iz sluลพbenog Mozilla repozitorija za vaลก operativni sustav.
  • ๏ธ Tri init putanje: Inicijalizirajte upravljaฤki program putem DesiredCapabilities, svojstva sustava marionette ili FirefoxMoguฤ‡nosti.
  • ๐Ÿงช Primjer tijeka rada: Koristiti JUnit anotacije kao ลกto su @Before, @Test i @After za ฤisto upravljanje ลพivotnim ciklusom preglednika.
  • ๐Ÿ› ๏ธ Ispravljanje uobiฤajenih pogreลกaka: Rijeลกite probleme sa SessionNotCreated i odbijanjem veze usklaฤ‘ivanjem Firefox, Seleniumi verzije upravljaฤkih programa.
  • ๐ŸŒ Prednost W3C-a: W3C WebDriver standard pruลพa kompatibilnost izmeฤ‘u verzija, smanjujuฤ‡i odrลพavanje automatizacijskih paketa.

GeckoDriver uลกao Selenium

U ฤemu je GeckoDriver Selenium?

Izraz Gecko oznaฤava web preglednik ugraฤ‘en u Mozillu. Firefox preglednik. GeckoDriver djeluje kao proxy izmeฤ‘u klijenata s omoguฤ‡enim WebDriverom (Eclipse, NetBeans, IntelliJ IDEAitd.) i Mozilla Firefox preglednik. Ukratko, GeckoDriver sluลพi kao veza izmeฤ‘u Selenium Testovi WebDrivera i Mozilla Firefox.

prije Selenium 3, Mozilla Firefox preglednik je bio zadani preglednik za Selenium. Nakon Selenium 3, testeri moraju inicijalizirati skriptu za koriลกtenje Firefox eksplicitno putem GeckoDrivera. Selenium koristi W3C WebDriver protokol za slanje zahtjeva GeckoDriveru, koji ih prevodi u protokol pod nazivom Marionette. Firefox zatim razumije naredbe transmitted u Mariformatu onette protokola i izvrลกava ih.

Prednost koriลกtenja GeckoDrivera

Selenium Verzija WebDrivera 2.53 nije kompatibilna s Mozillom Firefox verzija 47.0+. Naslijeฤ‘e Firefox upravljaฤki program koriลกten u ranijim verzijama Mozille Firefox Izrada verzija je obustavljena i danas se moลพe koristiti samo implementacija GeckoDrivera. Stoga testeri moraju koristiti GeckoDriver za pokretanje automatiziranih testova na Mozilli. Firefox verzija 47.0 i novija.

Glavna prednost koriลกtenja GeckoDrivera u odnosu na starije verzije Firefox vozaฤ je kompatibilnostGeckoDriver se oslanja na W3C WebDriver protokol komunicirati s SeleniumW3C je univerzalno definirani standard za WebDriver. To znaฤi Selenium Programeri ne moraju stvarati novu verziju upravljaฤkog programa za svako izdanje preglednika. Ista implementacija WebDrivera moลพe se koristiti u viลกe verzija preglednika, zbog ฤega je GeckoDriver poลพeljniji od starije verzije. Firefox vozaฤ.

Kako preuzeti i instalirati GeckoDriver u Selenium

GeckoDriver se distribuira kao izvrลกna datoteka koju moลพete preuzeti izravno na svoj sustav. Slijedite dolje navedene korake za preuzimanje i instalaciju GeckoDrivera za Selenium automatizacija.

Korak 1) Odaberite odgovarajuฤ‡u verziju.
Na sluลพbenoj stranici izdanja https://github.com/mozilla/geckodriver/releases, odaberite odgovarajuฤ‡u verziju GeckoDrivera koja odgovara vaลกem operativnom sustavu i arhitekturi.

Preuzmite i instalirajte GeckoDriver Selenium

Korak 2) Extract ZIP datoteku.
Nakon ลกto je preuzimanje ZIP datoteke zavrลกeno, npr.tracPremjestite njegov sadrลพaj u mapu na vaลกem raฤunalu.

ExtracZIP datoteka GeckoDrivera

Korak 3) Zabiljeลพite lokaciju vozaฤa.
Zabiljeลพite putanju mape u koju ste extracinstalirao upravljaฤki program. Ova lokacija ฤ‡e se kasnije koristiti za instanciranje upravljaฤkog programa iz vaลกeg testnog skripta.

Napomena o lokaciji GeckoDrivera

Naฤini inicijalizacije GeckoDrivera

Postoje tri razliฤita naฤina za inicijalizaciju GeckoDrivera u vaลกem Selenium testne skripte. Odaberite onu koja najbolje odgovara vaลกem testnom okviru i Selenium verzija.

1. Koriลกtenje ลพeljenih moguฤ‡nosti

Prvo postavite svojstvo sustava za GeckoDriver.

Sintaksa:

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

Primjer:

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

Zatim postavite ลฝeljene sposobnosti. ลฝeljene sposobnosti pomaลพu Selenium razumjeti naziv preglednika, verziju i operativni sustav potreban za izvrลกavanje automatiziranih testova. U nastavku je kod za konfiguriranje GeckoDrivera pomoฤ‡u klase DesiredCapabilities.

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

Evo kompletnog koda:

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

2. koristeฤ‡i MariNekretnina Onette

GeckoDriver se takoฤ‘er moลพe inicijalizirati pomoฤ‡u svojstva marionette kao ลกto je prikazano dolje.

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

Ako se GeckoDriver inicijalizira pomoฤ‡u gornje metode, kod ลพeljenih moguฤ‡nosti je ne potreban.

3. koristeฤ‡i FirefoxOpcije

Mozilla Firefox verzija 47+ otkriva Marionette driver kao naslijeฤ‘eni sustav. Iskoriลกtavajuฤ‡i to, MariUpravljaฤki program onette moลพe se pozvati putem Firefox Opcije kao ลกto je prikazano u nastavku.

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

Code za pokretanje Firefox Koriลกtenje GeckoDrivera

Sljedeฤ‡e JUnitprimjer baziran na prikazuje potpun, izvediv Selenium test koji se pokreฤ‡e Firefox putem GeckoDrivera i navigira do demo verzije 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 Objaลกnjenje

Metoda @Prije

U poฤetku smo postavili svojstvo sustava za GeckoDriver na lokaciju preuzimanja geckodriver.exe. Takoฤ‘er smo postavili svojstvo marionette na true kako bismo Selenium koristi Marionette protokol za komunikaciju s GeckoDriverom. Na kraju pokreฤ‡emo Firefox instanca preglednika pomoฤ‡u objekta ลฝeljene moguฤ‡nosti.

Sljedeฤ‡e izjave postiลพu ovu postavku.

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

@Metoda ispitivanja

Navigiramo do korisniฤki odreฤ‘enog URL koristeฤ‡i ugraฤ‘eni get metoda koju pruลพa Selenium WebDriver, kao ลกto je prikazano dolje.

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

@After metoda

Na kraju zatvaramo instancu preglednika pomoฤ‡u quit metoda.

driver.quit();

Izmijenite skriptu za ne-Gecko u Gecko

Skripte koje nisu GeckoDriver koriลกtene prije Selenium 3 su bila jednostavna. Jednostavno ste stvorili instancu od Firefox upravljaฤki program i koristio varijablu instance.

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

Za pretvorbu skripte za GeckoDriver, potrebno je dodati samo jedan redak koda koji pokazuje na lokaciju geckodriver.exe.

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

Uobiฤajene iznimke koje su se javljale prilikom koriลกtenja GeckoDrivera

Slijedi popis uobiฤajenih iznimki koje se javljaju tijekom koriลกtenja GeckoDrivera, zajedno s njihovim rjeลกenjima.

Do ove iznimke dolazi kada korisnik pokuลกa instancirati Firefox upravljaฤki program bez postavljanja sistemskog svojstva za GeckoDriver. To se obiฤno vidi kod Selenium poฤetnici koji nisu svjesni uvedenih promjena Selenium 3 u usporedbi s ranijim verzijama.

Rjeลกenje je postaviti svojstvo sustava za GeckoDriver s lokacijom datoteke geckodriver.exe kao ลกto je prikazano dolje.

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

Imajte na umu da morate postaviti svojstvo GeckoDriver prije stvaranja instance Mozilla Firefox vozaฤ.

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

Ovaj izuzetak se obiฤno javlja kada Firefox verzija je nadograฤ‘ena na najnovije izdanje. Rjeลกenje je aลพurirati i Selenium JAR datoteku i GeckoDriver na najnovije kompatibilne verzije, a zatim ponovno pokrenite skriptu.

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

Do ove iznimke dolazi zbog problema s kompatibilnoลกฤ‡u izmeฤ‘u Selenium i GeckoDriver. GeckoDriver radi s Firefox verzija 47 ili novija. Problem se moลพe rijeลกiti nadogradnjom Firefox verziju na 47 ili noviju.

WebDriver Exception: Connection Refused

Ova iznimka se pojavljuje kada WebDriver ne moลพe uspostaviti vezu s FirefoxMoลพe se rijeลกiti bilo kojom od sljedeฤ‡ih tehnika.

  • Koristite driver.quit() metoda za uniลกtavanje ranijih instanci WebDrivera.
  • Prije izvrลกavanja automatiziranih testova oฤistite predmemoriju preglednika.
  • Oฤistite radni prostor projekta unutar Eclipse SDI.
  • Uvijek koristite najnoviju verziju programa Selenium GeckoDriver zajedno s najnovijom stabilnom verzijom Firefox objaviti.

Pitanja i odgovori

Ne. GeckoDriver je izvrลกna proxy datoteka koja implementira W3C WebDriver standard. Marionette je protokol za automatizaciju ugraฤ‘en u FirefoxGeckoDriver prevodi WebDriver naredbe u Marionette poruke koje Firefox moลพe izvrลกiti.

Najnovije verzije GeckoDrivera sluลพbeno ciljaju Firefox 91 ESR i noviji. Uvijek provjerite biljeลกke o izdanju GeckoDrivera na Mozillinoj GitHub stranici kako biste potvrdili minimalne i maksimalne Firefox verzije koje podrลพava vaลกa preuzeta verzija.

Dodavanje GeckoDrivera u sistemski PATH je opcionalno, ali praktiฤno. Ako se nalazi na PATH-u, moลพete preskoฤiti poziv System.setProperty. Inaฤe morate eksplicitno navesti putanju upravljaฤkog programa unutar vaลกeg Selenium testni skript.

Da. Alati za testiranje potpomognuto umjetnom inteligencijom mogu generirati Selenium WebDriver kod, predlaลพu lokatore i automatski ispravljaju nestabilne skripte. Ubrzavaju rutinski rad, ali ljudski pregled verzija upravljaฤkih programa, ฤekanja i tvrdnji i dalje je potreban za pouzdanost. Firefox automatizacija.

Ne. AI agenti trenutno nadgraฤ‘uju WebDriver protokole umjesto da ih zamjenjuju. GeckoDriver ostaje most prema Firefox, dok slojevi umjetne inteligencije dodaju pametnije lokatore, samoobnavljanje i izradu testova na prirodnom jeziku uz postojeฤ‡i standard.

Saลพmite ovu objavu uz: