Изтеглете 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 ще разбере командите transmitпод формата на Mariпротокол onette и ги изпълнява.

GeckoDriver в Selenium

Как да изтеглите и инсталирате GeckoDriver в Selenium

Gecko Driver е наличен като изпълним файл, който може да бъде изтеглен в системата. Следва списък със стъпки за изтегляне на драйвер за gecko.

Етап 1 ) Изберете подходящата версия.
На тази страница https://github.com/mozilla/geckodriver/releases ,Изберете подходящата версия за изтегляне на GeckoDriver въз основа на вашата операционна система

Изтеглете и инсталирайте GeckoDriver в Selenium

Стъпка 2) Extract ZIP файла.
След като изтеглянето на ZIP файла приключи, напр.tracсъдържанието на ZIP файла в папка с файлове

Изтеглете и инсталирайте GeckoDriver в Selenium

Стъпка 3) Обърнете внимание на местоположението.
Обърнете внимание на мястото, където сте бившиtracтед на драйвера. Местоположението ще бъде използвано по-късно за създаване на инстанция на драйвера.

Изтеглете и инсталирайте GeckoDriver в Selenium

Начини за инициализиране на GeckoDriver

Има три различни начина за инициализиране на GeckoDriver.

1. Използване на DesiredCapabilities

Първо задайте системното свойство за 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 може също да се инициализира с помощта на свойството марионетка, както е показано по-долу

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

Ако драйверът на gecko се инициализира с помощта на горния метод, кодът за желаните възможности е не задължително.

3. Използвайки FirefoxНастроики

Mozilla Firefox версия 47+ има марионетен драйвер като наследена система. Възползвайки се от това, шофьорът на марионетка може да бъде наречен с помощта Firefox Опции като по-долу

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

Code за стартиране на 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();
    }

}

Code Обяснение

Метод @Before

Първоначално трябва да зададем системното свойство за драйвера на gecko на местоположението за изтегляне на файла geckdriver.exe. Трябва да зададем свойството marionette на true за Selenium да се използва Marionette протокол за комуникация с Gecko Driver. Най-накрая трябва да започнем 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 метод

И накрая, ние затваряме екземпляра на браузъра, като използваме метода за излизане.

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 Driver

Следва списък с често срещани изключения, които възникват при използване на Gecko Driver и с резолюция.

Това изключение възниква, когато потребителят се опита да създаде екземпляр Firefox драйвер без настройка на системното свойство за драйвера на gecko. Това обикновено се прави от начинаещи Selenium които не са наясно с направените промени от Selenium 3 да Selenium предишни версии.

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

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

Моля, обърнете внимание, че трябва да зададете свойството на gecko driver, преди да създадете екземпляр на 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 и драйвера за 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 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 база) не е необходимо да създавате нова версия на уеб драйвера за всяка версия на браузъра. Един и същ уеб драйвер може да се използва за множество версии на браузъри. Следователно GeckoDriver е предпочитан в сравнение с по-ранното внедряване на Firefox шофьор.

Обобщете тази публикация с: