Descărcați Geckodriver pentru Firefox & Selenium

⚡ Rezumat inteligent

GeckoDriver pentru Firefox și Selenium acționează ca un proxy între clienții W3C WebDriver și Mozilla Firefox, traducând comenzile în MariProtocolul onette. Acest ghid explică instalarea, tehnicile de inițializare, codul exemplu, excepțiile comune și avantajele compatibilității de bază.

  • 🦊 Rolul de punte: GeckoDriver se conectează Selenium Clienți WebDriver cu Firefox folosind Mariprotocolul onette.
  • ⬇️ Configurare mai întâi: Descărcați versiunea corectă a GeckoDriver din depozitul oficial Mozilla pentru sistemul dvs. de operare.
  • ⚙️ Trei căi de inițializare: Inițializați driverul prin DesiredCapabilities, proprietatea sistemului marionette sau FirefoxOpțiuni.
  • 🧪 Flux de lucru exemplu: Utilizare JUnit adnotări precum @Before, @Test și @After pentru a gestiona în mod curat ciclul de viață al browserului.
  • 🛠️ Remediați erorile comune: Rezolvați problemele SessionNotCreated și conexiunea refuzată prin aliniere Firefox, Seleniumși versiunile de drivere.
  • 🌐 Avantajul W3C: Standardul W3C WebDriver oferă compatibilitate între versiuni, reducând întreținerea pentru suitele de automatizare.

GeckoDriver în Selenium

În ce este GeckoDriver Selenium?

Termenul Gecko reprezintă un motor de browser web încorporat în Mozilla Firefox browser. GeckoDriver acționează ca proxy între clienții compatibili cu WebDriver (Eclipse, NetBeans, IntelliJ IDEA, etc.) și Mozilla Firefox browser. Pe scurt, GeckoDriver servește ca o legătură între Selenium Teste WebDriver și Mozilla Firefox.

Inainte Selenium 3, Mozilla Firefox browser a fost browserul implicit pentru Selenium. După Selenium 3, testerii trebuie să inițializeze scriptul pentru a-l utiliza Firefox prin GeckoDriver în mod explicit. Selenium utilizează protocolul W3C WebDriver pentru a trimite cereri către GeckoDriver, care le traduce într-un protocol numit Marionette. Firefox apoi înțelege comenzile transmitted în Mariformatează protocolul onette și le execută.

Avantajul utilizării GeckoDriver

Selenium Versiunea 2.53 a WebDriver nu este compatibilă cu Mozilla Firefox versiunea 47.0+. Moștenirea Firefox driver folosit în versiunile anterioare ale Mozilla Firefox Versiunile au fost întrerupte și doar implementarea GeckoDriver poate fi utilizată astăzi. Prin urmare, testerii sunt obligați să utilizeze GeckoDriver pentru a rula teste automate pe Mozilla. Firefox versiunea 47.0 și mai sus.

Principalul avantaj al utilizării GeckoDriver față de versiunea veche Firefox șoferul este compatibilitateGeckoDriver se bazează pe Protocolul W3C WebDriver pentru a comunica cu SeleniumW3C este un standard definit universal pentru WebDriver. Aceasta înseamnă Selenium Dezvoltatorii nu trebuie să creeze o nouă versiune de driver pentru fiecare versiune de browser. Aceeași implementare WebDriver poate fi utilizată în mai multe versiuni de browser, motiv pentru care GeckoDriver este preferat față de versiunea mai veche. Firefox conducător auto.

Cum să descărcați și să instalați GeckoDriver în Selenium

GeckoDriver este distribuit ca fișier executabil care poate fi descărcat direct pe sistemul dvs. Urmați pașii de mai jos pentru a descărca și instala GeckoDriver pentru Selenium automatizare.

Pas 1) Selectați versiunea corespunzătoare.
Pe pagina oficială a lansărilor https://github.com/mozilla/geckodriver/releases, alegeți versiunea GeckoDriver corespunzătoare sistemului de operare și arhitecturii dvs.

Descărcați și instalați GeckoDriver în Selenium

Pas 2) Extracfișierul ZIP.
După finalizarea descărcării fișierului ZIP, de ex.tracstocați conținutul său într-un folder de pe computer.

ExtracFișierul ZIP GeckoDriver

Pas 3) Rețineți locația șoferului.
Înregistrați calea folderului unde ați extraca creat driverul. Această locație va fi utilizată ulterior pentru a instanția driverul din scriptul de testare.

Notă locația GeckoDriver

Modalități de inițializare a GeckoDriver

Există trei moduri diferite de a inițializa GeckoDriver în Selenium scripturi de testare. Alegeți-l pe cel care se potrivește cel mai bine cadrului dvs. de testare și Selenium versiune.

1. Utilizarea DesiredCapabilities

Mai întâi, setați proprietatea de sistem pentru GeckoDriver.

Sintaxă:

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

Exemplu:

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

Apoi, setați Capacitățile dorite. Ajutor pentru Capacitățile dorite Selenium Înțelegeți numele browserului, versiunea și sistemul de operare necesare pentru executarea testelor automate. Mai jos este codul pentru configurarea GeckoDriver folosind clasa DesiredCapabilities.

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

Iată codul complet:

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

2. Utilizarea MariProprietatea onette

GeckoDriver poate fi inițializat și folosind proprietatea marionette, așa cum se arată mai jos.

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

Dacă GeckoDriver este inițializat folosind metoda de mai sus, codul Desired Capabilities este nu necesar.

3. Utilizarea FirefoxOpţiuni

Mozilla Firefox versiunea 47+ expune Maridriverul onette ca sistem moștenit. Profitând de acest lucru, Maridriverul onette poate fi invocat prin Firefox Opțiunile sunt așa cum se arată mai jos.

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

Code pentru lansare Firefox Utilizarea GeckoDriver

Următoarele JUnitUn exemplu bazat pe - arată o versiune completă, rulabilă Selenium test care lansează Firefox prin GeckoDriver și navighează către o demonstrație 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 Explicație

Metoda @Inainte

Inițial, am setat proprietatea de sistem pentru GeckoDriver la locația de descărcare geckodriver.exe. De asemenea, am setat proprietatea marionette la true, astfel încât Selenium folosește Mariprotocolul onette pentru a comunica cu GeckoDriver. În cele din urmă, începem Firefox instanță de browser folosind obiectul Desired Capabilities.

Următoarele instrucțiuni realizează această configurație.

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

@Metoda de test

Navigăm la locația specificată de utilizator URL folosind dispozitivul încorporat get metoda oferita de Selenium WebDriver, așa cum se arată mai jos.

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

Metoda @După

În final, închidem instanța browserului folosind comanda quit metodă.

driver.quit();

Modificarea unui script pentru Non-Gecko în Gecko

Scripturi non-GeckoDriver utilizate anterior Selenium 3 au fost simple. Pur și simplu ai creat o instanță a Firefox driver și a folosit variabila de instanță.

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

Pentru a converti scriptul pentru GeckoDriver, trebuie doar să adăugați o linie de cod care indică locația geckodriver.exe.

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

Excepții frecvente apărute în timpul utilizării GeckoDriver

Următoarea este o listă de excepții comune care apar la utilizarea GeckoDriver, împreună cu rezolvările acestora.

Această excepție apare atunci când utilizatorul încearcă să instanțieze Firefox driver fără a seta proprietatea de sistem pentru GeckoDriver. Se observă frecvent cu Selenium începători care nu sunt conștienți de schimbările introduse în Selenium 3 comparativ cu versiunile anterioare.

Rezoluția este de a seta proprietatea de sistem pentru GeckoDriver cu locația fișierului geckodriver.exe, așa cum se arată mai jos.

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

Rețineți că trebuie să setați proprietatea GeckoDriver înainte de a crea o instanță a fișierului Mozilla. Firefox conducător auto.

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

Această excepție apare de obicei atunci când Firefox versiunea a fost actualizată la cea mai recentă versiune. Rezoluția este de a actualiza atât Selenium Fișierul JAR și GeckoDriver la cele mai recente versiuni compatibile, apoi rulați din nou scriptul.

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

Această excepție apare din cauza problemelor de compatibilitate între Selenium și GeckoDriver. GeckoDriver funcționează cu Firefox versiunea 47 sau o versiune ulterioară. Problema poate fi rezolvată prin actualizarea Firefox versiunea 47 sau o versiune ulterioară.

WebDriver Exception: Connection Refused

Această excepție apare atunci când WebDriver nu poate stabili o conexiune cu FirefoxPoate fi rezolvată folosind oricare dintre următoarele tehnici.

  • Folosește driver.quit() metodă de distrugere a instanțelor anterioare ale WebDriver.
  • Curățați memoria cache a browserului înainte de a executa testele automate.
  • Curățați spațiul de lucru al proiectului în cadrul Eclipse SDI.
  • Folosiți întotdeauna cea mai recentă versiune a Selenium GeckoDriver împreună cu cea mai recentă versiune stabilă Firefox eliberare.

Întrebări frecvente

Nu. GeckoDriver este executabilul proxy care implementează standardul W3C WebDriver. Marionette este protocolul de automatizare încorporat în FirefoxGeckoDriver traduce comenzile WebDriver în Marimesaje onette care Firefox poate executa.

Cele mai recente versiuni GeckoDriver vizează oficial Firefox 91 ESR și versiuni mai noi. Verificați întotdeauna notele de lansare GeckoDriver de pe pagina GitHub a Mozilla pentru a confirma setările minime și maxime. Firefox versiunile acceptate de versiunea descărcată.

Adăugarea GeckoDriver la PATH-ul sistemului este opțională, dar convenabilă. Dacă se află pe PATH, puteți sări peste apelul System.setProperty. În caz contrar, trebuie să specificați explicit calea driverului în interiorul fișierului dvs. Selenium script de testare.

Da. Instrumentele de testare asistate de inteligență artificială pot genera Selenium Cod WebDriver, localizatori sugerați și reparare automată a scripturilor instabile. Acestea accelerează munca de rutină, dar revizuirea umană a versiunilor de driver, a așteptărilor și a aserțiunilor este încă necesară pentru o funcționare fiabilă. Firefox automatizare.

Nu. Agenții AI se află în prezent peste protocoalele WebDriver, în loc să le înlocuiască. GeckoDriver rămâne puntea către Firefox, în timp ce straturile de inteligență artificială adaugă localizatori mai inteligenți, auto-reparare și creare de teste în limbaj natural, pe lângă standardul existent.

Rezumați această postare cu: