Gecko (Marionette) Driver Selenium: Изтеглете, инсталирайте, използвайте с Firefox

Съдържание:

Anonim

Какво е Gecko Driver?

Терминът Gecko означава двигател на уеб браузър, който е вграден в браузъра Mozilla Firefox. Драйверът на Gecko действа като прокси между клиенти с активиран уеб драйвер (Eclipse, Netbeans и др.) И браузър Mozilla Firefox. Накратко, драйверът на Gecko действа като връзка между тестовете на Selenium Web Driver и браузъра Mozilla Firefox.

Преди Selenium 3 браузърът Mozilla Firefox беше браузърът по подразбиране за Selenium. След Selenium 3 тестерите трябва да инициализират скрипта, за да използват Firefox, като изрично използват GeckoDriver. Selenium използва протокол W3C Webdriver за изпращане на заявки до GeckoDriver, който ги превежда в протокол на име Marionette. Firefox ще разбере командите, предадени под формата на протокол Marionette и ги изпълнява.

Предимство от използването на Gecko Driver

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

Изтеглете и инсталирайте Gecko Driver:

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

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

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

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

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

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

1. Използване на желаните възможности:

Първо задайте системното свойство за Gecko Driver.

Синтаксис:

System.setProperty ("webdriver.gecko.driver", "Път към файла geckdriver.exe");

Пример:

System.setProperty ("webdriver.gecko.driver", "D: \\ Изтегляния \\ GeckoDriver.exe");

След това задайте Желани възможности.

Желаните възможности помагат на Selenium да разбере името, версията и операционната система на браузъра за изпълнение на автоматизираните тестове. По-долу е даден кодът за задаване на драйвер за гекон с помощта на клас DesiredCapabilities.

Възможности на желаните възможности = DesiredCapabilities.firefox ();възможности.setCapability ("марионетка", вярно);

Ето пълния код

System.setProperty ("webdriver.gecko.driver", driverPath);Възможности на желаните възможности = DesiredCapabilities.firefox ();възможности.setCapability ("марионетка", вярно);драйвер = нов FirefoxDriver (възможности);

2. Използване на марионетен имот:

Драйверът на Gecko също може да бъде инициализиран, като се използва марионетно свойство, както е показано по-долу

System.setProperty ("webdriver.gecko.driver", "D: \\ Изтегляния \\ GeckoDriver.exe");

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

3. Използване на FirefoxOptions:

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

Опции за FirefoxOptions = нови FirefoxOptions ();options.setLegacy (вярно);

Код за стартиране на firefox с помощта на драйвер Gecko:

пакет com.guru99.demo;внос org.junit.After;внос org.junit.Преди;внос org.junit.Test;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;импортиране на org.openqa.selenium.remote.DesiredCapabilities;публичен клас GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";публичен драйвер на WebDriver;@Предиpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);Възможности на желаните възможности = DesiredCapabilities.firefox ();възможности.setCapability ("марионетка", вярно);драйвер = нов FirefoxDriver (възможности);}@Тестpublic void navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Следpublic void endTest () {driver.quit ();}}

Обяснение на кода:

@ Преди метод:

Първоначално трябва да зададем системното свойство за драйвер на gecko на мястото за изтегляне на файла geckdriver.exe. Трябва да зададем свойството marionette на true за Selenium, за да използваме Marionette протокол за комуникация с Gecko Driver. И накрая, трябва да стартираме екземпляра на браузъра Firefox, като използваме обекта за Желани възможности.

Твърденията по-долу помагат за постигането на горната задача.

System.setProperty ("webdriver.gecko.driver", driverPath);Възможности на желаните възможности = DesiredCapabilities.firefox ();възможности.setCapability ("марионетка", вярно);драйвер = нов FirefoxDriver (възможности);

@Метод на тестване:

Придвижваме се до посочен от потребителя URL, използвайки вградения метод „get“, предоставен от уеб драйвера на Selenium. Твърдението по-долу помага да се постигне същото.

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

@ След метод:

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

driver.quit ();

Модифицирайте скрипт за не-Gecko към Gecko:

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

@Предиpublic void startBrowser () {драйвер = нов FirefoxDriver ();}

За да конвертирате в гекон, трябва просто да добавите един ред код

@Предиpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Downloads \\ GeckoDriver.exe");драйвер = нов FirefoxDriver ();}

Чести изключения, възникнали при използване на Gecko Driver:

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

1. Пътят до изпълнимия драйвер трябва да бъде зададен от системното свойство webdriver.gecko.driver:

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

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

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

Моля, обърнете внимание, че трябва да зададете свойството на драйвер за гекон, преди да създадете екземпляр на драйвер на Mozilla Firefox.

2. Изключение на Firefox Not Connected:

org.openqa.selenium.firefox.NotConnectedException: Не може да се свърже с хост 127.0.0.1 на порт 7055 след 45000 ms.

Това изключение обикновено се случва, когато версията на Firefox е надстроена до последната версия. Резолюцията за това изключение е да актуализира селен jar файла и драйвера на gecko до най-новата версия и да използва същото.

3. Сесия не е създадена Изключение:

org.openqa.selenium.SessionNotCreatedException: Не може да се създаде нова отдалечена сесия.

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

4. Изключение за отказана връзка:

Изключение на WebDriver: Връзката е отказана

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

  • Използвайте метода driver.quit (), за да унищожите по-ранни копия на уеб драйвер
  • Почистете кеша на браузъра, преди да изпълните автоматизираните си тестове
  • Почистете работното пространство на проекта в Eclipse IDE
  • Винаги използвайте най-новата версия на драйвер за селен gecko и най-новата версия на браузъра Firefox