Ladda ner Geckodriver: Hur man installerar Firefox Förare för Selenium
Vad är GeckoDriver i Selenium?
Termen Gecko står för en webbläsarmotor som är inbyggd i Mozilla Firefox webbläsare. Gecko-drivrutinen fungerar som en proxy mellan Web Driver-aktiverade klienter (Eclipse, Netbeans, etc.) och Mozilla Firefox webbläsare. Kort sagt, Gecko driver fungerar som en länk mellan Selenium Webbdrivrutinstester och Mozilla Firefox webbläsare.
Innan Selenium 3, Mozilla Firefox webbläsare var standardwebbläsaren för Selenium. Efter Selenium 3, testare måste initiera skriptet att använda Firefox använder GeckoDriver uttryckligen. Selenium använder W3C Webdriver-protokoll för att skicka förfrågningar till GeckoDriver, som översätter dem till ett protokoll som heter Marionette. Firefox kommer att förstå de kommandon som sänds i form av Marionette-protokollet och exekverar dem.
Hur man laddar ner och installerar GeckoDriver i Selenium
Gecko Driver är tillgänglig som en körbar fil som kan laddas ner på systemet. Följande är listan med steg för att ladda ner gecko-drivrutinen.
Steg 1 ) Välj lämplig version.
På denna sida https://github.com/mozilla/geckodriver/releases ,Välj lämplig version för nedladdning av GeckoDriver baserat på ditt operativsystem
Steg 2) Extrahera ZIP-filen.
När nedladdningen av ZIP-filen är klar, extraherar du innehållet i ZIP-filen till en filmapp
Steg 3) Notera platsen.
Notera platsen där du extraherade drivrutinen. Platsen kommer att användas senare för att instansiera föraren.
Sätt att initiera GeckoDriver
Det finns tre olika sätt att initiera GeckoDriver.
1. Använda DesiredCapabilities
Ställ först in systemegenskapen för Gecko Driver.
Syntax:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
Exempelvis:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Ställ sedan in önskade funktioner.
Önskad kapacitet hjälper Selenium för att förstå webbläsarens namn, version och operativsystem för att utföra de automatiska testerna. Nedan finns koden för att ställa in gecko-drivrutinen med klassen DesiredCapabilities.
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true);
Här är den fullständiga koden
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
2. Använda marionettegenskap
Gecko-drivrutinen kan också initieras med marionettegenskapen enligt nedan
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Om gecko-drivrutinen initieras med ovanstående metod, är koden för önskade funktioner inte krävs.
3. Använder sig av FirefoxMontering
Mozilla Firefox version 47+ har marionettdrivrutin som ett äldre system. Genom att dra fördel av detta kan marionettdrivrutin kallas att använda Firefox Alternativ enligt nedan
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Kod för att starta firefox med Gecko-drivrutinen
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("http://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } }
Kodförklaring
@Före-metoden
Inledningsvis måste vi ställa in systemegenskapen för gecko-drivrutinen till nedladdningsplatsen för geckdriver.exe-filen. Vi måste ställa in marionettegenskapen till sann för Selenium att använda Marionette-protokoll för att kommunicera med Gecko Driver. Äntligen måste vi börja Firefox webbläsarinstans som använder objektet för önskade funktioner.
Nedanstående uttalanden hjälper till att uppnå ovanstående uppgift.
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
@Testmetod
Vi navigerar till användarspecificerad URL med den inbyggda "get"-metoden som tillhandahålls av Selenium webbdrivrutin. Nedanstående uttalande hjälper till att uppnå samma sak.
driver.get("http://demo.guru99.com/selenium/guru99home/");
@Efter metoden
Slutligen stänger vi webbläsarinstansen med quit-metoden.
driver.quit();
Ändra ett skript för icke-Gecko till Gecko
Icke-gecko-drivrutinskript som använts tidigare Selenium 3 var okomplicerad. Vi måste skapa en instans av Firefox drivrutinen och använd instansvariabeln.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
För att konvertera till gecko behöver du helt enkelt lägga till en rad kod
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
Vanliga undantag inträffade när du använde Gecko Driver
Följande är en lista över vanliga undantag som uppstår när du använder Gecko Driver och med upplösning.
Fördelen med att använda Gecko Driver
Selenium Webdriver version 2.53 är inte kompatibel med Mozilla Firefox version 47.0+. De Firefox drivrutin som används i tidigare versioner av Mozilla Firefox kommer att avbrytas och endast GeckoDriver-implementeringen kommer att användas. Därför tvingas testare att använda GeckoDriver om de vill köra automatiserade tester på Mozilla Firefox version 47.0+. Men den stora frågan - vad är fördelen?
Den stora fördelen med att använda GeckoDriver i motsats till standarden Firefox föraren är Kompatibilitet. GeckoDriver använder W3C WebDriver-protokoll att kommunicera med Selenium. W3C är en universellt definierad standard för Web Driver. Detta betyder Selenium Utvecklare (Personer som kodar Selenium base) behöver inte skapa en ny version av webbdrivrutinen för varje webbläsarversion. Samma webbdrivrutin kan användas för flera webbläsarversioner. Därför är GeckoDriver att föredra jämfört med den tidigare implementeringen av Firefox förare.