Завантажити Geckodriver для Firefox & Selenium

⚡ Розумний підсумок

GeckoDriver для Firefox та Selenium діє як проксі-сервер між клієнтами W3C WebDriver та Mozilla Firefox, перекладаючи команди в MariПротокол onette. У цьому посібнику пояснюється встановлення, методи ініціалізації, приклади коду, поширені винятки та переваги сумісності з ядром.

  • 🦊 Роль мосту: GeckoDriver підключається Selenium Клієнти WebDriver з Firefox використання Mariпротокол Онетта.
  • (І.Е. Спочатку налаштуйте: Завантажте правильну збірку GeckoDriver з офіційного репозиторію Mozilla для вашої операційної системи.
  • Три шляхи ініціалізації: Ініціалізуйте драйвер за допомогою DesiredCapabilities, системної властивості marionette, або FirefoxПараметри.
  • 🧪 Зразок робочого процесу: Скористайтеся кнопкою JUnit анотації, такі як @Before, @Test та @After, для чіткого керування життєвим циклом браузера.
  • 🛠️ Виправлення поширених помилок: Вирішення проблем SessionNotCreated та відмови у підключенні шляхом вирівнювання Firefox, Selenium, та версії драйверів.
  • 🌐 Переваги W3C: Стандарт W3C WebDriver забезпечує сумісність між версіями, що зменшує обсяг обслуговування пакетів автоматизації.

GeckoDriver в Selenium

Що таке GeckoDriver Selenium?

Термін Gecko розшифровується як движок веб-браузера, вбудований у Mozilla. Firefox браузер. GeckoDriver діє як проксі-сервер між клієнтами з підтримкою WebDriver (Eclipse, NetBeans, IntelliJ IDEAтощо) та Mozilla Firefox браузер. Коротше кажучи, GeckoDriver служить сполучною ланкою між Selenium Тести WebDriver та Mozilla Firefox.

Перш ніж Selenium 3, Мозіла Firefox браузер був браузером за умовчанням для Selenium. Після Selenium 3, тестувальники повинні ініціалізувати скрипт для використання Firefox явно через GeckoDriver. Selenium використовує протокол W3C WebDriver для надсилання запитів до GeckoDriver, який перетворює їх у протокол з назвою Mariонетт. Firefox потім розуміє команди transmitТед у Mariформат протоколу onette та виконує їх.

Перевага використання GeckoDriver

Selenium Версія WebDriver 2.53 несумісна з Mozilla Firefox версія 47.0+. Спадщина Firefox драйвер, який використовувався в попередніх версіях Mozilla Firefox Збірки було припинено, і сьогодні можна використовувати лише реалізацію GeckoDriver. Тому тестувальникам потрібно використовувати GeckoDriver для запуску автоматизованих тестів на Mozilla. Firefox версія 47.0 і вище.

Основна перевага використання GeckoDriver над застарілою версією Firefox водій є сумісністьGeckoDriver спирається на Протокол W3C WebDriver спілкуватися з SeleniumW3C – це універсально визначений стандарт для WebDriver. Це означає Selenium Розробникам не потрібно створювати нову версію драйвера для кожного випуску браузера. Одну й ту саму реалізацію WebDriver можна використовувати в кількох версіях браузера, тому GeckoDriver кращий за старішу версію. Firefox водій.

Як завантажити та встановити GeckoDriver в Selenium

GeckoDriver розповсюджується як виконуваний файл, який можна завантажити безпосередньо у вашу систему. Виконайте наведені нижче кроки, щоб завантажити та встановити GeckoDriver для Selenium автоматизація.

Крок 1) Виберіть відповідну версію.
На офіційній сторінці релізів https://github.com/mozilla/geckodriver/releases, виберіть відповідну збірку GeckoDriver, яка відповідає вашій операційній системі та архітектурі.

Завантажте та встановіть GeckoDriver Selenium

Крок 2) Extracт ZIP-файл.
Після завершення завантаження ZIP-файлу, наприкладtracскопіюйте його вміст у папку на вашому комп’ютері.

ExtracZIP-файл GeckoDriver

Крок 3) Зверніть увагу на місцезнаходження водія.
Запишіть шлях до папки, де виtracпідключив драйвер. Це місце буде використано пізніше для створення екземпляра драйвера з вашого тестового скрипта.

Примітка щодо розташування GeckoDriver

Способи ініціалізації GeckoDriver

Існує три різні способи ініціалізації GeckoDriver у вашому Selenium тестові скрипти. Виберіть той, який найкраще відповідає вашій тестовій платформі та Selenium версія.

1. Використання бажаних можливостей

Спочатку встановіть системну властивість для GeckoDriver.

Синтаксис:

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

приклад:

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

Далі встановіть бажані можливості. Допомога з бажаними можливостями Selenium зрозуміти назву браузера, версію та операційну систему, необхідні для виконання автоматизованих тестів. Нижче наведено код для налаштування GeckoDriver за допомогою класу 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 Використовуючи MariНерухомість Онетта

GeckoDriver також можна ініціалізувати за допомогою властивості marionette, як показано нижче.

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

Якщо GeckoDriver ініціалізовано за допомогою вищезазначеного методу, код бажаних можливостей буде НЕ вимагається.

3 Використовуючи FirefoxОпції

Mozilla Firefox версія 47+ надає доступ до Mariдрайвер onette як застаріла система. Користуючись цим, MariДрайвер onette можна викликати через Firefox Варіанти, як показано нижче.

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

Code для запуску Firefox Використання GeckoDriver

Наступні JUnitприклад на основі показує повний, виконуваний Selenium тест, який запускається Firefox через GeckoDriver та переходить до демонстрації URL.

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

}

Code Пояснення

Метод @Before

Спочатку ми встановлюємо системну властивість GeckoDriver на місце завантаження geckodriver.exe. Ми також встановлюємо властивість marionette на true, щоб Selenium використовує Mariпротокол onette для зв'язку з GeckoDriver. Нарешті, ми запускаємо Firefox екземпляр браузера за допомогою об'єкта Desired Capabilities.

Наступні твердження досягають цієї налаштування.

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

Метод @Test

Ми переходимо до вказаного користувачем URL використовуючи вбудований get метод, що надається Selenium WebDriver, як показано нижче.

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

Метод @After

Нарешті, ми закриваємо екземпляр браузера за допомогою quit метод.

driver.quit();

Змінити скрипт для не-геконів на геконівський

Скрипти, що не належать до GeckoDriver, що використовувалися раніше Selenium 3 були простими. Ви просто створили екземпляр Firefox драйвер і використав змінну екземпляра.

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

Щоб конвертувати скрипт для GeckoDriver, вам потрібно додати лише один рядок коду, який вказує на розташування geckodriver.exe.

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

Поширені винятки, що траплялися під час використання GeckoDriver

Нижче наведено список поширених винятків, які виникають під час використання GeckoDriver, а також способи їх вирішення.

Цей виняток виникає, коли користувач намагається створити екземпляр Firefox драйвер без встановлення системної властивості для GeckoDriver. Зазвичай це зустрічається з Selenium новачки, які не знають про зміни, внесені в Selenium 3 порівняно з попередніми версіями.

Рішення полягає в тому, щоб встановити системну властивість для GeckoDriver з розташуванням файлу geckodriver.exe, як показано нижче.

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

Зверніть увагу, що перед створенням екземпляра Mozilla необхідно встановити властивість GeckoDriver. Firefox водій.

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

Цей виняток зазвичай трапляється, коли Firefox Версію оновлено до останньої версії. Рішення полягає в тому, щоб оновити обидві Selenium JAR-файл та GeckoDriver до останніх сумісних версій, а потім знову запустіть скрипт.

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

Цей виняток виникає через проблеми сумісності між Selenium та GeckoDriver. GeckoDriver працює з Firefox версії 47 або вище. Проблему можна вирішити, оновивши Firefox версія 47 або вище.

WebDriver Exception: Connection Refused

Цей виняток з'являється, коли WebDriver не може встановити з'єднання з FirefoxЦе можна вирішити, використовуючи будь-який із наведених нижче методів.

  • Ввімкніть кнопку driver.quit() метод знищення попередніх екземплярів WebDriver.
  • Очистіть кеш браузера перед виконанням автоматизованих тестів.
  • Очистіть робочу область проекту всередині Eclipse ІДЕ.
  • Завжди використовуйте найновішу версію Selenium GeckoDriver разом з найновішою стабільною версією Firefox звільнення.

Поширені запитання

Ні. GeckoDriver — це виконуваний проксі-файл, який реалізує стандарт W3C WebDriver. Marionette — це протокол автоматизації, вбудований у FirefoxGeckoDriver перетворює команди WebDriver на Mariповідомлення Онетта, що Firefox може виконати.

Найновіші збірки GeckoDriver офіційно призначені для Firefox 91 ESR та новіші версії. Завжди перевіряйте нотатки до випуску GeckoDriver на сторінці Mozilla GitHub, щоб підтвердити мінімальні та максимальні значення. Firefox версії, що підтримуються завантаженою вами збіркою.

Додавання GeckoDriver до системного PATH необов'язкове, але зручне. Якщо він знаходиться в PATH, можна пропустити виклик System.setProperty. В іншому випадку потрібно явно вказати шлях до драйвера всередині вашого Selenium тестовий скрипт.

Так. Інструменти тестування за допомогою штучного інтелекту можуть генерувати Selenium Код WebDriver, локатори пропозицій та автоматичне відновлення ненадійних скриптів. Вони пришвидшують рутинну роботу, але для надійної роботи все ще потрібна перевірка версій драйверів, очікувань та тверджень людиною. Firefox автоматизація.

Ні. Агенти штучного інтелекту наразі працюють поверх протоколів WebDriver, а не замінюють їх. GeckoDriver залишається мостом до Firefox, тоді як шари штучного інтелекту додають розумніші локатори, самовідновлення та створення тестів природною мовою на додаток до існуючого стандарту.

Підсумуйте цей пост за допомогою: