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

Что такое GeckoDriver Selenium?

Термин Gecko означает движок веб-браузера, встроенный в Mozilla. Firefox браузер. Драйвер Gecko действует как прокси-сервер между клиентами с поддержкой веб-драйвера (Eclipse, Netbeans и т. д.) и Mozilla Firefox браузер. Короче говоря, драйвер Gecko действует как связующее звено между Selenium Тесты веб-драйверов и Mozilla Firefox браузер.

Перед тем, как Selenium 3, Мозилла Firefox браузер был браузером по умолчанию для Selenium, После Selenium 3, тестировщикам необходимо инициализировать сценарий для использования Firefox явно используя GeckoDriver. Selenium использует протокол W3C Webdriver для отправки запросов в GeckoDriver, который преобразует их в протокол с именем Mariонетта. Firefox поймет команды, передаваемые в виде Mariпротокол onette и выполняет их.

GeckoВодитель в Selenium

Как скачать и установить GeckoDriver в Selenium

Драйвер Gecko доступен в виде исполняемого файла, который можно загрузить в систему. Ниже приведен список шагов для загрузки драйвера Gecko.

Шаг 1 ) Выберите подходящую версию.
На этой странице https://github.com/mozilla/geckodriver/releases ,Выберите соответствующую версию для загрузки GeckoDriver в зависимости от вашей операционной системы.

Загрузите и установите GeckoDriver в Selenium

Шаг 2) Распакуйте ZIP-файл.
После завершения загрузки ZIP-файла извлеките содержимое ZIP-файла в папку с файлами.

Загрузите и установите GeckoDriver в Selenium

Шаг 3) Обратите внимание на местоположение.
Запомните место, куда вы извлекли драйвер. Местоположение будет использоваться позже для создания экземпляра драйвера.

Загрузите и установите GeckoDriver в Selenium

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

Существует три разных способа инициализации GeckoDriver.

1. Использование желаемых возможностей

Сначала установите системное свойство для драйвера Gecko.

Синтаксис:

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 также можно инициализировать, используя свойство марионетки, как показано ниже.

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

Если драйвер Gecko инициализируется с использованием описанного выше метода, код желаемых возможностей будет следующим: требуется.

3. С помощью FirefoxВарианты

Mozilla Firefox версия 47+ имеет драйвер марионетки в качестве устаревшей системы. Воспользовавшись этим, драйвера марионетки можно вызвать с помощью 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("https://demo.guru99.com/selenium/guru99home/");
    }

    @After
    public void endTest() {
        driver.quit();
    }

}

Код Пояснение

Метод @Before

Первоначально нам нужно установить системное свойство для драйвера gecko в место загрузки файла geckdriver.exe. Нам нужно установить для свойства марионетки значение true для Selenium использовать Mariпротокол onette для связи с драйвером Gecko. Наконец, нам нужно запустить Firefox экземпляр браузера, использующий объект для желаемых возможностей.

Приведенные ниже утверждения помогают достичь вышеуказанной задачи.

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

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

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

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

@After метод

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

driver.quit();

Измените сценарий для не-Gecko на Gecko.

Сценарий драйвера, не относящийся к Gecko, использовался ранее Selenium 3 был простым. Нам нужно создать экземпляр Firefox драйвер и используйте переменную экземпляра.

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

}

Чтобы преобразовать в геккона, вам нужно просто добавить одну строку кода

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

    }

Распространенные исключения возникали при использовании драйвера Gecko.

Ниже приведен список распространенных исключений, которые возникают при использовании драйвера Gecko и при разрешении.

Это исключение возникает, когда пользователь пытается создать экземпляр Firefox драйвер без установки системного свойства для драйвера Gecko. Обычно это делают новички Selenium кто не знает об изменениях, внесенных Selenium 3 к Selenium предыдущие версии.

Решением для вышеуказанного исключения является установка системного свойства для драйвера gecko с указанием местоположения файла geckodriver.exe, как показано ниже.

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

Обратите внимание, что вам необходимо установить свойство драйвера Gecko перед созданием экземпляра Mozilla. Firefox Водитель.

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

Это исключение обычно возникает, когда Firefox версия обновлена ​​до последней версии. Решением этого исключения является обновление файла jar Selenium и драйвера Gecko до последней версии и использование их.

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

Это исключение возникает из-за проблем совместимости между Selenium и водитель Gecko. Драйвер Gecko работает с Firefox версия 47 или выше. Это можно решить обновлением Firefox версию до 47 или выше.

WebDriver Exception: Connection Refused

Это исключение представляет собой сообщение, создаваемое, когда веб-драйвер не может установить соединение с Firefox. Эту проблему можно решить, используя любой из следующих методов.

  • Используйте driver.quit() метод для уничтожения более ранних экземпляров веб-драйвера
  • Очистите кеш браузера перед выполнением автоматических тестов.
  • Очистите рабочее пространство проекта внутри Eclipse IDE
  • Всегда используйте последнюю версию драйвера selenium gecko и самую последнюю версию Firefox браузер

Преимущество использования драйвера Gecko

Selenium Webdriver версии 2.53 несовместим с Mozilla. Firefox версия 47.0+. Firefox драйвер, используемый в более ранних версиях Mozilla Firefox будет прекращено, и будет использоваться только реализация GeckoDriver. Следовательно, тестировщики вынуждены использовать GeckoDriver, если они хотят запускать автоматические тесты в Mozilla. Firefox версия 47.0+. Но главный вопрос – в чем преимущество?

Основное преимущество использования GeckoDriver по сравнению со стандартным Firefox водитель Совместимость. GeckoDriver использует Протокол W3C WebDriver общаться с Selenium. W3C — это универсальный стандарт для веб-драйверов. Это означает Selenium Разработчики (люди, которые пишут код Selenium base) не нужно создавать новую версию веб-драйвера для каждой версии браузера. Один и тот же веб-драйвер можно использовать для нескольких версий браузера. Следовательно, GeckoDriver предпочтительнее более ранней реализации. Firefox Водитель.