Descărcați Geckodriver pentru Firefox & Selenium webdriver
În ce este GeckoDriver Selenium?
Termenul Gecko înseamnă un motor de browser web care este încorporat în Mozilla Firefox browser. Driverul Gecko acționează ca un proxy între clienții activați pentru Web Driver (Eclipse, Netbeans etc.) și Mozilla Firefox browser. Pe scurt, șoferul Gecko acționează ca o legătură între Selenium Teste de drivere web și Mozilla Firefox browser-ul.
Inainte Selenium 3, Mozilla Firefox browser a fost browserul implicit pentru Selenium. După Selenium 3, testerii trebuie să inițializeze scriptul de utilizat Firefox folosind GeckoDriver în mod explicit. Selenium folosește protocolul W3C Webdriver pentru a trimite cereri către GeckoDriver, care le traduce într-un protocol numit Marionette. Firefox va intelege comenzile transmise sub forma de Marionenette protocol și le execută.
Cum să descărcați și să instalați GeckoDriver în Selenium
Gecko Driver este disponibil ca fișier executabil care poate fi descărcat pe sistem. Următoarele sunt lista de pași pentru a descărca driverul Gecko.
Pasul 1 ) Selectați versiunea corespunzătoare.
La această pagină https://github.com/mozilla/geckodriver/releases ,Selectați versiunea corespunzătoare pentru descărcarea GeckoDriver în funcție de sistemul dvs. de operare
Pas 2) Extrageți fișierul ZIP.
Odată ce descărcarea fișierului ZIP este completă, extrageți conținutul fișierului ZIP într-un folder de fișiere
Pas 3) Notați locația.
Notați locația de unde ați extras driverul. Locația va fi folosită ulterior pentru a instanția driverul.
Modalități de a inițializa GeckoDriver
Există trei moduri diferite de a inițializa GeckoDriver.
1. Utilizarea DesiredCapabilities
Mai întâi, setați proprietatea sistemului pentru Gecko Driver.
Sintaxă:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
Exemplu:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Apoi, setați Capabilitățile dorite.
Capabilitățile dorite ajută Selenium pentru a înțelege numele browserului, versiunea și sistemul de operare pentru a executa testele automate. Mai jos este codul pentru a seta driverul Gecko folosind clasa DesiredCapabilities.
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true);
Aici este codul complet
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
2. Folosirea proprietății marionete
Driverul Gecko poate fi, de asemenea, inițializat folosind proprietatea de marionetă, ca mai jos
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Dacă driverul gecko este inițializat folosind metoda de mai sus, codul pentru capabilitățile dorite este nu necesar.
3. Utilizarea FirefoxOpţiuni
Mozilla Firefox versiunea 47+ are driver de marionetă ca sistem moștenit. Profitând de acest lucru, șoferul de marionetă poate fi apelat folosind Firefox Opțiuni ca mai jos
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Cod pentru lansarea Firefox folosind driverul 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(); } }
Explicarea codului
Metoda @Inainte
Inițial, trebuie să setăm proprietatea de sistem pentru driverul gecko la locația de descărcare a fișierului geckdriver.exe. Trebuie să setăm proprietatea marionetei la adevărat pentru Selenium să utilizeze Mariprotocol onenette pentru a comunica cu Gecko Driver. În cele din urmă, trebuie să începem Firefox instanță de browser folosind obiectul pentru Capabilitățile dorite.
Declarațiile de mai jos ajută la îndeplinirea sarcinii de mai sus.
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
@Metoda de test
Navigam la adresa URL specificată de utilizator utilizând metoda „obține” încorporată furnizată de Selenium driver web. Declarația de mai jos vă ajută să obțineți același lucru.
driver.get("https://demo.guru99.com/selenium/guru99home/");
Metoda @După
În cele din urmă, închidem instanța browserului utilizând metoda ieșire.
driver.quit();
Modificați un script pentru non-Gecko în Gecko
Scriptul driverului non-gecko folosit înainte Selenium 3 a fost simplu. Trebuie să creăm o instanță de Firefox driver și utilizați variabila de instanță.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
Pentru a converti în gecko, trebuie să adăugați pur și simplu o linie de cod
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
Au apărut excepții comune în timpul utilizării Gecko Driver
Mai jos este o listă a excepțiilor comune care apar în timpul utilizării driverului Gecko și cu rezoluție.
Avantajul utilizării Gecko Driver
Selenium Versiunea Webdriver 2.53 nu este compatibilă cu Mozilla Firefox versiunea 47.0+. The Firefox driver utilizat în versiunile anterioare de Mozilla Firefox va fi întreruptă și va fi utilizată doar implementarea GeckoDriver. Prin urmare, testerii sunt forțați să folosească GeckoDriver dacă doresc să ruleze teste automate pe Mozilla Firefox versiunea 47.0+. Dar marea întrebare - care este avantajul?
Avantajul major al utilizării GeckoDriver spre deosebire de implicit Firefox șoferul este Compatibilitate. GeckoDriver folosește Protocolul W3C WebDriver pentru a comunica cu Selenium. W3C este un standard definit universal pentru Web Driver. Acest lucru înseamnă Selenium Dezvoltatori (persoane care codifică Selenium de bază) nu trebuie să creeze o nouă versiune de Web Driver pentru fiecare versiune de browser. Același driver web poate fi utilizat pentru mai multe versiuni de browser. Prin urmare, GeckoDriver este preferat în comparație cu implementarea anterioară a Firefox conducător auto.