Preuzmite Geckodriver za Firefox & Selenium webdriver

U čemu je GeckoDriver Selenium?

Izraz Gecko označava mehanizam web-preglednika koji je ugrađen u Mozillu Firefox preglednik. Gecko upravljački program djeluje kao proxy između klijenata s omogućenim Web Driver-om (Eclipse, Netbeans itd.) i Mozilla Firefox preglednik. Ukratko, Gecko driver djeluje kao poveznica između Selenium Web Driver testovi i Mozilla Firefox preglednik.

prije Selenium 3, Mozilla Firefox preglednik je bio zadani preglednik za Selenium. Nakon Selenium 3, testeri moraju inicijalizirati skriptu za korištenje Firefox eksplicitno koristeći GeckoDriver. Selenium koristi W3C Webdriver protokol za slanje zahtjeva GeckoDriveru, koji ih prevodi u protokol pod nazivom Marionette. Firefox razumjet će naredbe prenesene u obliku Marionette protokol i izvršava ih.

GeckoDriver ušao Selenium

Kako preuzeti i instalirati GeckoDriver u Selenium

Gecko Driver dostupan je kao izvršna datoteka koja se može preuzeti na sustav. Slijedi popis koraka za preuzimanje drajvera za gecko.

Korak 1 ) Odaberite odgovarajuću verziju.
Na ovoj stranici https://github.com/mozilla/geckodriver/releases ,Odaberite odgovarajuću verziju za preuzimanje GeckoDrivera na temelju vašeg operativnog sustava

Preuzmite i instalirajte GeckoDriver Selenium

Korak 2) Ekstrahirajte ZIP datoteku.
Nakon završetka preuzimanja ZIP datoteke, izvucite sadržaj ZIP datoteke u mapu s datotekama

Preuzmite i instalirajte GeckoDriver Selenium

Korak 3) Zabilježite mjesto.
Zabilježite mjesto gdje ste izdvojili upravljački program. Lokacija će se kasnije koristiti za instanciranje upravljačkog programa.

Preuzmite i instalirajte GeckoDriver Selenium

Načini inicijalizacije GeckoDrivera

Postoje tri različita načina za inicijalizaciju GeckoDrivera.

1. Korištenje željenih mogućnosti

Prvo postavite svojstvo sustava za Gecko Driver.

Sintaksa:

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

Primjer:

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

Zatim postavite željene mogućnosti.

Pomoć željenih mogućnosti Selenium razumjeti naziv preglednika, verziju i operativni sustav za izvođenje automatiziranih testova. Ispod je kôd za postavljanje gecko drajvera pomoću klase DesiredCapabilities.

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

Ovdje je kompletan kod

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

2. Korištenje marionetske imovine

Upravljački program Gecko također se može pokrenuti koristeći svojstvo marionete kao u nastavku

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

Ako se gecko driver inicijalizira gornjom metodom, kod za željene mogućnosti je ne potreban.

3. koristeći FirefoxOpcije

Mozilla Firefox verzija 47+ ima upravljački program za marionete kao naslijeđeni sustav. Iskoristivši to, marionetski vozač se može nazvati korištenjem Firefox Opcije kao u nastavku

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

Kod za pokretanje firefoxa pomoću Gecko drajvera

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();
    }

}

Objašnjenje koda

Metoda @Prije

U početku moramo postaviti svojstvo sustava za gecko driver na lokaciju za preuzimanje datoteke geckdriver.exe. Moramo postaviti svojstvo marionete na true for Selenium koristiti Marionette protokol za komunikaciju s Gecko Driverom. Konačno, moramo započeti Firefox instanca preglednika koja koristi objekt za željene mogućnosti.

Sljedeće izjave pomažu ostvariti gornji zadatak.

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

@Metoda ispitivanja

Idemo na URL koji je odredio korisnik koristeći ugrađenu metodu "get" koju nudi Selenium web vozač. Izjava u nastavku pomaže postići isto.

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

@After metoda

Na kraju, zatvaramo instancu preglednika koristeći quit metodu.

driver.quit();

Izmijenite skriptu za ne-Gecko u Gecko

Prije se koristila skripta upravljačkog programa koji nije gecko Selenium 3 je bilo jednostavno. Moramo stvoriti instancu Firefox upravljački program i koristite varijablu instance.

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

}

Za pretvorbu u gecko trebate jednostavno dodati jedan redak koda

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

    }

Uobičajene su se iznimke događale tijekom korištenja Gecko Drivera

Slijedi popis uobičajenih iznimaka koji se javljaju tijekom korištenja Gecko Drivera i s rezolucijom.

Ova se iznimka događa kada korisnik pokuša instancirati Firefox upravljački program bez postavljanja svojstva sustava za gecko upravljački program. To obično rade početnici Selenium koji nisu svjesni promjena napravljenih od Selenium 3 se Selenium prethodne verzije.

Rješenje za gornju iznimku je postaviti svojstvo sustava za gecko driver s lokacijom datoteke geckodriver.exe kao u nastavku

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

Imajte na umu da morate postaviti svojstvo gecko drivera prije stvaranja instance Mozille Firefox vozač.

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

Ova se iznimka obično događa kada Firefox verzija je nadograđena na najnoviju verziju. Rješenje za ovu iznimku je ažuriranje selenium jar datoteke i gecko upravljačkog programa na najnoviju verziju i korištenje istih.

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

Do ove iznimke dolazi zbog problema s kompatibilnošću između Selenium i Gecko vozač. Gecko driver radi sa Firefox verzija 47 ili novija. Može se riješiti ažuriranjem Firefox verzija do 47 ili više.

WebDriver Exception: Connection Refused

Ova iznimka je poruka koja se generira kada web upravljački program ne može uspostaviti vezu s Firefox. Može se riješiti bilo kojom od sljedećih tehnika.

  • Koristiti driver.quit() metoda za uništavanje ranijih instanci web upravljačkog programa
  • Očistite predmemoriju preglednika prije izvršavanja automatskih testova
  • Očistite radni prostor projekta unutar njega Eclipse IDE
  • Uvijek koristite najnoviju verziju selenium gecko drivera i najnoviju verziju Firefox preglednik

Prednost korištenja Gecko Drivera

Selenium Webdriver verzija 2.53 nije kompatibilna s Mozillom Firefox verzija 47.0+. The Firefox upravljački program korišten u ranijim verzijama Mozille Firefox će se prekinuti, a koristit će se samo GeckoDriver implementacija. Stoga su testeri prisiljeni koristiti GeckoDriver ako žele pokrenuti automatizirane testove na Mozilli Firefox verzija 47.0+. Ali veliko pitanje – koja je prednost?

Glavna prednost korištenja GeckoDrivera u odnosu na zadani Firefox vozač je Kompatibilnost. GeckoDriver koristi W3C WebDriver protokol komunicirati s Selenium. W3C je univerzalno definiran standard za Web Driver. To znači Selenium Programeri (Ljudi koji kodiraju Selenium baza) ne mora stvarati novu verziju Web Drivera za svaku verziju preglednika. Isti web upravljački program može se koristiti za više verzija preglednika. Stoga je GeckoDriver poželjniji u usporedbi s ranijom implementacijom Firefox vozač.