Scarica Geckodriver per Firefox & Selenium webdriver
In cosa consiste GeckoDriver Selenium?
Il termine Gecko sta per un motore di browser Web integrato in Mozilla Firefox browser. Il driver Gecko funge da proxy tra i client abilitati al Web Driver (Eclipse, Netbeans, ecc.) e Mozilla Firefox browser. In breve, il driver Gecko funge da collegamento tra Selenium Test dei driver Web e Mozilla Firefox browser.
Prima Selenium 3, Mozilla Firefox browser era il browser predefinito per Selenium. Dopo Selenium 3, i tester devono inizializzare lo script da utilizzare Firefox utilizzando GeckoDriver in modo esplicito. Selenium utilizza il protocollo W3C Webdriver per inviare richieste a GeckoDriver, che le traduce in un protocollo denominato Marionetta. Firefox capirà i comandi trasmessi sotto forma di Mariprotocollo onette e li esegue.
Come scaricare e installare GeckoDriver in Selenium
Gecko Driver è disponibile come file eseguibile che può essere scaricato sul sistema. Di seguito è riportato l'elenco dei passaggi per scaricare Gecko Driver.
Passo 1 ) Seleziona la versione appropriata.
In questa pagina https://github.com/mozilla/geckodriver/releases ,Seleziona la versione appropriata per il download di GeckoDriver in base al tuo sistema operativo
Passo 2) Estrai il file ZIP.
Una volta completato il download del file ZIP, estrai il contenuto del file ZIP in una cartella di file
Passo 3) Prendere nota della posizione.
Nota la posizione in cui hai estratto il driver. La posizione verrà utilizzata in seguito per istanziare il driver.
Modi per inizializzare GeckoDriver
Esistono tre modi diversi per inizializzare GeckoDriver.
1. Utilizzo delle capacità desiderate
Innanzitutto, imposta la proprietà di sistema per Gecko Driver.
Sintassi:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
Esempio:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Successivamente, imposta le funzionalità desiderate.
Le capacità desiderate aiutano Selenium comprendere il nome del browser, la versione e il sistema operativo per eseguire i test automatizzati. Di seguito è riportato il codice per impostare il driver gecko 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. Utilizzo della proprietà della marionetta
Il driver Gecko può anche essere inizializzato utilizzando la proprietà marionette come di seguito
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Se il driver gecko viene inizializzato utilizzando il metodo sopra riportato, il codice per le funzionalità desiderate sarà non è un richiesto.
3. Utilizzando FirefoxOpzioni
Mozilla Firefox la versione 47+ ha il driver delle marionette come sistema legacy. Approfittando di ciò, il marionette può essere chiamato usando Firefox Opzioni come di seguito
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Codice per l'avvio di Firefox utilizzando il driver Gecko
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(); } }
Spiegazione del codice
Metodo @Prima
Inizialmente, dobbiamo impostare la proprietà di sistema per il driver gecko sul percorso di download del file geckdriver.exe. Dobbiamo impostare la proprietà marionette su true per Selenium usare Mariprotocollo onette per comunicare con Gecko Driver. Infine, dobbiamo avviare il file Firefox istanza del browser che utilizza l'oggetto per le funzionalità desiderate.
Le seguenti affermazioni aiutano a raggiungere il compito di cui sopra.
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
@Metodo di prova
Stiamo navigando verso l'URL specificato dall'utente utilizzando il metodo "get" integrato fornito da Selenium driver web. La dichiarazione seguente aiuta a raggiungere lo stesso risultato.
driver.get("https://demo.guru99.com/selenium/guru99home/");
Metodo @Dopo
Infine, chiudiamo l'istanza del browser utilizzando il metodo quit.
driver.quit();
Modificare uno script per non-Gecko in Gecko
Script del driver non Gecko utilizzato in precedenza Selenium 3 era semplice. Dobbiamo creare un'istanza di Firefox driver e utilizzare la variabile di istanza.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
Per convertire in gecko, devi semplicemente aggiungere una riga di codice
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
Si sono verificate eccezioni comuni durante l'utilizzo di Gecko Driver
Di seguito è riportato un elenco delle eccezioni più comuni che si verificano durante l'utilizzo di Gecko Driver e delle relative soluzioni.
Vantaggio dell'utilizzo di Gecko Driver
Selenium La versione 2.53 di Webdriver non è compatibile con Mozilla Firefox versione 47.0+. IL Firefox driver utilizzato nelle versioni precedenti di Mozilla Firefox verrà interrotto e verrà utilizzata solo l'implementazione GeckoDriver. Quindi i tester sono costretti a utilizzare GeckoDriver se vogliono eseguire test automatizzati su Mozilla Firefox versione 47.0+. Ma la grande domanda: qual è il vantaggio?
Il vantaggio principale dell'utilizzo di GeckoDriver rispetto all'impostazione predefinita Firefox autista è Compatibilità. GeckoDriver utilizza Protocollo W3C WebDriver con cui comunicare Selenium. W3C è uno standard universalmente definito per Web Driver. Questo significa Selenium Sviluppatori (persone che programmano Selenium base) non è necessario creare una nuova versione di Web Driver per ciascuna versione del browser. Lo stesso Web Driver può essere utilizzato per più versioni di browser. Pertanto, GeckoDriver è preferito rispetto alla precedente implementazione di Firefox conducente.