Scarica Geckodriver per Firefox & Selenium

โšก Riepilogo intelligente

GeckoDriver per Firefox and Selenium funge da proxy tra i client W3C WebDriver e Mozilla Firefox, traducendo i comandi in MariProtocollo Onette. Questa guida illustra l'installazione, le tecniche di inizializzazione, il codice di esempio, le eccezioni comuni e i principali vantaggi in termini di compatibilitร .

  • ๐ŸฆŠ Ruolo di collegamento: GeckoDriver si connette Selenium Clienti WebDriver con Firefox usando il Mariprotocollo unico.
  • โฌ‡๏ธ Prima di tutto, preparatevi: Scarica la versione corretta di GeckoDriver dal repository ufficiale di Mozilla per il tuo sistema operativo.
  • โš™๏ธ Tre percorsi di inizializzazione: Inizializza il driver tramite DesiredCapabilities, la proprietร  del sistema marionette, oppure FirefoxOpzioni.
  • ๐Ÿงช Esempio di flusso di lavoro: Usa il JUnit Annotazioni come @Before, @Test e @After per gestire il ciclo di vita del browser in modo pulito.
  • ๏ธ Risolvi gli errori piรน comuni: Risolvi i problemi SessionNotCreated e connection-refused allineando Firefox, Seleniume versioni dei driver.
  • ๐ŸŒ Vantaggi del W3C: Lo standard W3C WebDriver garantisce la compatibilitร  tra le diverse versioni, riducendo la manutenzione delle suite di automazione.

GeckoDriver in Selenium

In cosa consiste GeckoDriver Selenium?

Il termine Gecko indica un motore di browser web integrato in Mozilla Firefox browser. GeckoDriver funge da proxy tra i client abilitati a WebDriver (Eclipse, NetBeans, IntelliJ IDEA, ecc.) e Mozilla Firefox browser. In breve, GeckoDriver funge da collegamento tra Selenium Test di WebDriver e Mozilla Firefox.

Before Selenium 3, la Mozilla Firefox browser era il browser predefinito per Selenium. Dopo Selenium 3, i tester devono inizializzare lo script per utilizzarlo Firefox tramite GeckoDriver in modo esplicito. Selenium utilizza il protocollo W3C WebDriver per inviare richieste a GeckoDriver, che le traduce in un protocollo denominato Marionetta. Firefox quindi comprende i comandi transmitted nel Mariformato di protocollo onette e li esegue.

Vantaggi dell'utilizzo di GeckoDriver

Selenium La versione 2.53 di WebDriver non รจ compatibile con Mozilla Firefox versione 47.0+. La versione legacy Firefox driver utilizzato in Mozilla precedente Firefox Il supporto per le build รจ stato interrotto e oggi รจ possibile utilizzare solo l'implementazione GeckoDriver. Pertanto, i tester sono tenuti a utilizzare GeckoDriver per eseguire i test automatizzati su Mozilla. Firefox versione 47.0 e successive.

Il principale vantaggio dell'utilizzo di GeckoDriver rispetto al sistema legacy Firefox autista รจ compatibilitร . GeckoDriver si basa su Protocollo W3C WebDriver con cui comunicare SeleniumIl W3C รจ uno standard definito universalmente per WebDriver. Ciรฒ significa Selenium Gli sviluppatori non hanno bisogno di creare una nuova versione del driver per ogni rilascio del browser. La stessa implementazione di WebDriver puรฒ essere utilizzata su piรน versioni del browser, motivo per cui GeckoDriver รจ preferito rispetto alle versioni precedenti. Firefox conducente.

Come scaricare e installare GeckoDriver in Selenium

GeckoDriver viene distribuito come file eseguibile che puรฒ essere scaricato direttamente sul sistema. Segui i passaggi seguenti per scaricare e installare GeckoDriver per Selenium automazione.

Passo 1) Seleziona la versione appropriata.
Sulla pagina delle pubblicazioni ufficiali https://github.com/mozilla/geckodriver/releases, scegli la build di GeckoDriver appropriata che corrisponde al tuo sistema operativo e alla tua architettura.

Scarica e installa GeckoDriver nel Selenium

Passo 2) Extracil file ZIP.
Una volta completato il download del file ZIP, es.tractrasferisci il suo contenuto in una cartella sul tuo computer.

ExtracFile ZIP di GeckoDriver

Passo 3) Annotare la posizione del conducente.
Registra il percorso della cartella in cui ti trovitracha creato il driver. Questa posizione verrร  utilizzata in seguito per istanziare il driver dallo script di test.

Nota la posizione di GeckoDriver

Metodi per inizializzare GeckoDriver

Esistono tre modi diversi per inizializzare GeckoDriver nel tuo Selenium script di test. Scegli quello che meglio si adatta al tuo framework di test e Selenium versione.

1. Utilizzo delle capacitร  desiderate

Innanzitutto, imposta la proprietร  di sistema per GeckoDriver.

Sintassi:

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

Esempio:

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

Successivamente, imposta le capacitร  desiderate. Le capacitร  desiderate aiutano Selenium Comprendere il nome del browser, la versione e il sistema operativo necessari per eseguire i test automatizzati. Di seguito รจ riportato il codice per configurare GeckoDriver utilizzando la classe DesiredCapabilities.

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

Ecco il codice completo:

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

2. Utilizzando MariProprietร  Onette

GeckoDriver puรฒ essere inizializzato anche utilizzando la proprietร  marionette, come mostrato di seguito.

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

Se GeckoDriver viene inizializzato utilizzando il metodo sopra descritto, il codice Desired Capabilities รจ non รจ un richiesto.

3. Utilizzando FirefoxOpzioni

Mozilla Firefox la versione 47+ espone il Mariun driver onette come sistema legacy. Approfittando di ciรฒ, il Marionette driver puรฒ essere richiamato tramite Firefox Opzioni come mostrato di seguito.

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

Code per il lancio Firefox Utilizzo di GeckoDriver

Le seguenti JUnit-l'esempio basato mostra un completo eseguibile Selenium test che si avvia Firefox tramite GeckoDriver e naviga verso una demo 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 Spiegazione

Metodo @Prima

Inizialmente, abbiamo impostato la proprietร  di sistema per GeckoDriver sulla posizione di download di geckodriver.exe. Abbiamo anche impostato la proprietร  marionette su true, quindi Selenium utilizza l' Mariun protocollo per comunicare con GeckoDriver. Infine, avviamo il Firefox Istanza del browser che utilizza l'oggetto Desired Capabilities.

Le seguenti istruzioni consentono di realizzare questa configurazione.

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

@Metodo di prova

Ci spostiamo verso l'utente specificato URL utilizzando il built-in get metodo fornito da Selenium WebDriver, come mostrato di seguito.

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

Metodo @Dopo

Infine, chiudiamo l'istanza del browser utilizzando il quit metodo.

driver.quit();

Modificare uno script da Non-Gecko a Gecko

Script non GeckoDriver utilizzati in precedenza Selenium 3 erano semplici. Hai semplicemente creato un'istanza del Firefox driver e ha utilizzato la variabile regola.

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

Per convertire lo script per GeckoDriver, รจ sufficiente aggiungere una sola riga di codice che indichi il percorso del file geckodriver.exe.

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

Si sono verificate delle eccezioni comuni durante l'utilizzo di GeckoDriver

Di seguito รจ riportato un elenco delle eccezioni piรน comuni che si verificano durante l'utilizzo di GeckoDriver, insieme alle relative soluzioni.

Questa eccezione si verifica quando l'utente tenta di istanziare l' Firefox driver senza impostare la proprietร  di sistema per GeckoDriver. Si vede comunemente con Selenium principianti che non sono a conoscenza dei cambiamenti introdotti in Selenium 3 rispetto alle versioni precedenti.

La soluzione consiste nell'impostare la proprietร  di sistema per GeckoDriver con il percorso del file geckodriver.exe, come mostrato di seguito.

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

Si prega di notare che รจ necessario impostare la proprietร  di GeckoDriver prima di creare un'istanza di Mozilla Firefox conducente.

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

Questa eccezione si verifica solitamente quando Firefox la versione รจ stata aggiornata all'ultima release. La risoluzione รจ di aggiornare entrambi Selenium Aggiorna il file JAR e GeckoDriver alle ultime versioni compatibili, quindi esegui nuovamente lo script.

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

Questa eccezione si verifica a causa di problemi di compatibilitร  tra Selenium e GeckoDriver. GeckoDriver funziona con Firefox versione 47 o superiore. Il problema puรฒ essere risolto aggiornando la Firefox versione 47 o superiore.

WebDriver Exception: Connection Refused

Questa eccezione si verifica quando WebDriver non riesce a stabilire una connessione con FirefoxPuรฒ essere risolto utilizzando una qualsiasi delle seguenti tecniche.

  • Usa il driver.quit() metodo per eliminare le istanze precedenti di WebDriver.
  • Prima di eseguire i test automatizzati, svuota la cache del browser.
  • Pulire l'area di lavoro del progetto all'interno Eclipse SDI.
  • Utilizzare sempre la versione piรน recente del Selenium GeckoDriver insieme alla versione stabile piรน recente Firefox rilasciare.

DOMANDE FREQUENTI

No. GeckoDriver รจ l'eseguibile proxy che implementa lo standard WebDriver del W3C. Marionette รจ il protocollo di automazione integrato in Firefox. GeckoDriver traduce i comandi WebDriver in Marimessaggi unici che Firefox puรฒ eseguire.

Le ultime build di GeckoDriver sono ufficialmente destinate a Firefox 91 ESR e versioni successive. Controllare sempre le note di rilascio di GeckoDriver sulla pagina GitHub di Mozilla per confermare i requisiti minimi e massimi. Firefox versioni supportate dalla build scaricata.

Aggiungere GeckoDriver al PATH di sistema รจ facoltativo ma comodo. Se รจ presente nel PATH, รจ possibile saltare la chiamata System.setProperty. Altrimenti, รจ necessario specificare esplicitamente il percorso del driver all'interno del file Selenium script di test.

Sรฌ. Gli strumenti di test assistiti dall'IA possono generare Selenium Il codice WebDriver, i localizzatori suggeriti e gli script instabili con correzione automatica velocizzano il lavoro di routine, ma รจ comunque necessaria una revisione umana delle versioni dei driver, delle attese e delle asserzioni per un funzionamento affidabile. Firefox automazione.

No. Gli agenti AI attualmente si trovano al di sopra dei protocolli WebDriver anzichรฉ sostituirli. GeckoDriver rimane il ponte verso Firefox, mentre i livelli di intelligenza artificiale aggiungono localizzatori piรน intelligenti, funzionalitร  di auto-riparazione e la possibilitร  di creare test in linguaggio naturale, oltre allo standard esistente.

Riassumi questo post con: