Завантажте Geckodriver: як встановити Firefox Драйвер для Selenium
Що таке GeckoDriver Selenium?
Термін Gecko означає механізм веб-браузера, вбудований у Mozilla Firefox браузер. Драйвер Gecko діє як проксі між клієнтами з підтримкою веб-драйвера (Eclipse, Netbeans тощо) і Mozilla Firefox браузер. Коротше кажучи, драйвер Gecko діє як сполучна ланка між Selenium Тести веб-драйверів і Mozilla Firefox браузера.
Перед тим як Selenium 3, Mozilla Firefox браузер був браузером за умовчанням для Selenium. Після Selenium 3, тестувальники повинні ініціалізувати сценарій для використання Firefox явно використовуючи GeckoDriver. Selenium використовує протокол W3C Webdriver для надсилання запитів до GeckoDriver, який перетворює їх у протокол під назвою Mariонетт. Firefox буде розуміти команди, передані у формі Marionette протокол і виконує їх.
Як завантажити та встановити GeckoDriver в Selenium
Драйвер Gecko доступний у вигляді виконуваного файлу, який можна завантажити в систему. Нижче наведено список кроків для завантаження драйвера gecko.
Крок 1 ) Виберіть відповідну версію.
На цій сторінці https://github.com/mozilla/geckodriver/releases ,Виберіть відповідну версію для завантаження GeckoDriver на основі вашої операційної системи
Крок 2) Розпакуйте ZIP-файл.
Після завершення завантаження ZIP-файлу витягніть вміст ZIP-файлу в папку з файлами
Крок 3) Зверніть увагу на розташування.
Зверніть увагу на місце, де ви витягли драйвер. Розташування буде використано пізніше для створення екземпляра драйвера.
Способи ініціалізації GeckoDriver
Є три різні способи ініціалізації GeckoDriver.
1. Використання бажаних можливостей
Спочатку встановіть властивість системи для Gecko Driver.
Синтаксис:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
приклад:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Далі встановіть бажані можливості.
Допомога щодо бажаних можливостей Selenium зрозуміти назву браузера, версію та операційну систему для виконання автоматизованих тестів. Нижче наведено код для встановлення драйвера gecko за допомогою класу DesiredCapabilities.
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true);
Ось повний код
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
2. Використання власності маріонеток
Драйвер Gecko також можна ініціалізувати за допомогою властивості marionette, як показано нижче
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Якщо драйвер gecko ініціалізовано за допомогою описаного вище методу, код для бажаних можливостей є НЕ вимагається.
3 Використовуючи FirefoxОпції
Mozilla Firefox версія 47+ має драйвер marionette як застарілу систему. Користуючись цим, водія-маріонетку можна назвати використанням Firefox Варіанти, як показано нижче
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Код для запуску firefox за допомогою драйвера 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("http://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } }
Пояснення коду
Метод @Before
Спочатку нам потрібно встановити системну властивість драйвера gecko на місце завантаження файлу geckdriver.exe. Нам потрібно встановити для властивості marionette значення true for Selenium to use Mariпротокол onette для зв’язку з Gecko Driver. Нарешті, нам потрібно почати Firefox екземпляр браузера з використанням об’єкта для бажаних можливостей.
Наведені нижче твердження допомагають виконати поставлене вище завдання.
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
Метод @Test
Ми переходимо до вказаної користувачем URL-адреси за допомогою вбудованого методу get, який надає Selenium веб-драйвер. Наведене нижче твердження допоможе досягти того ж.
driver.get("http://demo.guru99.com/selenium/guru99home/");
Метод @After
Нарешті, ми закриваємо екземпляр браузера за допомогою методу quit.
driver.quit();
Змініть сценарій для не-Gecko на Gecko
Сценарій драйвера без gecko, який використовувався раніше Selenium 3 було просто. Нам потрібно створити екземпляр Firefox драйвер і використовуйте змінну екземпляра.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
Щоб перетворити на gecko, вам потрібно просто додати один рядок коду
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
Поширені винятки траплялися під час використання драйвера Gecko
Нижче наведено список поширених винятків, які виникають під час використання драйвера Gecko та з роздільною здатністю.
Перевага використання Gecko Driver
Selenium Webdriver версії 2.53 несумісний з Mozilla Firefox версія 47.0+. The Firefox драйвер, який використовувався в попередніх версіях Mozilla Firefox буде припинено, і використовуватиметься лише реалізація GeckoDriver. Тому тестувальники змушені використовувати GeckoDriver, якщо хочуть запускати автоматизовані тести на Mozilla Firefox версія 47.0+. Але головне питання – у чому перевага?
Основна перевага використання GeckoDriver на відміну від стандартного Firefox водій є Сумісність. GeckoDriver використовує Протокол W3C WebDriver спілкуватися з Selenium. W3C — це універсально визначений стандарт для веб-драйвера. Це означає Selenium Розробники (Люди, які кодують Selenium base) не потрібно створювати нову версію веб-драйвера для кожної версії браузера. Той самий веб-драйвер можна використовувати для кількох версій браузера. Отже, GeckoDriver є кращим порівняно з попередньою реалізацією Firefox водій.