Загрузите Geckodriver для Firefox & Selenium

⚡ Умное резюме

GeckoDriver для Firefox и Selenium выступает в качестве прокси-сервера между клиентами W3C WebDriver и Mozilla. Firefoxперевод команд в MariПротокол OneNette. В этом руководстве описаны установка, методы инициализации, примеры кода, распространенные исключения и преимущества совместимости с ядром.

  • 🦊 Роль моста: GeckoDriver подключается Selenium Клиенты WebDriver с Firefox используя Mariпротокол онетт.
  • ⬇️ Первая настройка: Загрузите правильную сборку GeckoDriver из официального репозитория Mozilla для вашей операционной системы.
  • ⚙️ Три начальных пути: Инициализируйте драйвер через DesiredCapabilities, системное свойство марионетки, или FirefoxПараметры.
  • 🧪 Пример рабочего процесса: Используйте JUnit Аннотации, такие как @Before, @Test и @After, позволяют корректно управлять жизненным циклом браузера.
  • 🇧🇷 Исправление распространенных ошибок: Устраните проблемы SessionNotCreated и connection-refused путем выравнивания Firefox, Seleniumи версии драйверов.
  • 🌐 Преимущества W3C: Стандарт W3C WebDriver обеспечивает совместимость между версиями, что снижает затраты на обслуживание пакетов автоматизации.

GeckoВодитель в Selenium

Что такое GeckoDriver Selenium?

Термин Gecko обозначает движок веб-браузера, встроенный в Mozilla. Firefox браузер. GeckoDriver выступает в качестве прокси между клиентами, поддерживающими WebDriver.Eclipse, NetBeans, IntelliJ IDEAи т. д.) и Mozilla Firefox браузер. Вкратце, GeckoDriver служит связующим звеном между Selenium Тесты WebDriver и Mozilla Firefox.

Перед тем, как Selenium 3, Mozilla 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Скопируйте его содержимое в папку на вашем компьютере.

Extract GeckoDriver ZIP-файл

Шаг 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 инициализируется с использованием описанного выше метода, то код Desired Capabilities будет выглядеть следующим образом: не требуется.

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

@Метод испытания

Мы переходим к указанному пользователем адресу. URL используя встроенный get метод предоставлен Selenium WebDriver, как показано ниже.

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

@After метод

Наконец, мы закрываем экземпляр браузера, используя... quit метод.

driver.quit();

Модифицировать скрипт для преобразования из не-геккона в геккона

Ранее использовались скрипты, не относящиеся к GeckoDriver. Selenium Три из них были простыми. Вам просто нужно было создать экземпляр. 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");

Обратите внимание, что необходимо установить свойство GeckoDriver перед созданием экземпляра Mozilla. 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 IDE.
  • Всегда используйте последнюю версию Selenium GeckoDriver вместе с самой последней стабильной версией. Firefox отпустить.

Часто задаваемые вопросы (FAQ)

Нет. 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При этом слои ИИ добавляют к существующему стандарту более интеллектуальные локаторы, самовосстановление и создание тестов на естественном языке.

Подведем итог этой публикации следующим образом: