Изтеглете Geckodriver за Firefox & Selenium

⚡ Умно обобщение

GeckoDriver за Firefox намлява Selenium действа като прокси между клиентите на W3C WebDriver и Mozilla Firefox, превеждайки команди в MariПротокол onette. Това ръководство обяснява инсталирането, техниките за инициализация, примерния код, често срещаните изключения и предимствата на съвместимостта с ядрото.

  • 🦊 Роля на моста: GeckoDriver се свързва Selenium Клиенти на WebDriver с Firefox използване на Mariпротоколът на Онет.
  • ⬇️ Първо настройте: Изтеглете правилната версия на GeckoDriver от официалното хранилище на Mozilla за вашата операционна система.
  • Три Init пътя: Инициализирайте драйвера чрез 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) Extract ZIP файла.
След като изтеглянето на ZIP файла приключи, напр.tracкопирайте съдържанието му в папка на вашето устройство.

ExtracZIP файл на GeckoDriver

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

Забележка за местоположението на GeckoDriver

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

Има три различни начина за инициализиране на GeckoDriver във вашия Selenium тестови скриптове. Изберете този, който най-добре отговаря на вашата тестова рамка и Selenium версия.

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

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

Моля, обърнете внимание, че трябва да зададете свойството на 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 SDI.
  • Винаги използвайте най-новата версия на Selenium GeckoDriver заедно с най-новата стабилна версия Firefox освободите.

Въпроси и Отговори

Не. GeckoDriver е изпълним прокси файл, който имплементира стандарта W3C WebDriver. Marionette е вграденият в него протокол за автоматизация. FirefoxGeckoDriver превежда командите на WebDriver в Mariсъобщения на Онет, които Firefox може да изпълни.

Най-новите компилации на GeckoDriver официално са насочени към Firefox 91 ESR и по-нови версии. Винаги проверявайте бележките за изданието на GeckoDriver на страницата в GitHub на Mozilla, за да потвърдите минималния и максималния размер. Firefox версии, поддържани от изтеглената от вас компилация.

Добавянето на GeckoDriver към системния PATH е по избор, но е удобно. Ако е в PATH, можете да пропуснете извикването на System.setProperty. В противен случай трябва да укажете пътя на драйвера изрично във вашия Selenium тестов скрипт.

Да. Инструментите за тестване, подпомагани от изкуствен интелект, могат да генерират Selenium Код на WebDriver, локатори на предложения и автоматично поправяне на нестабилни скриптове. Те ускоряват рутинната работа, но за надеждна работа все още е необходим човешки преглед на версиите на драйверите, чаканията и твърденията. Firefox автоматизация.

Не. Агентите с изкуствен интелект в момента работят върху протоколите WebDriver, вместо да ги заместват. GeckoDriver остава мостът към... Firefox, докато слоевете с изкуствен интелект добавят по-интелигентни локатори, самовъзстановяване и създаване на тестове на естествен език в допълнение към съществуващия стандарт.

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