Selenium с использованием Java. Путь к исполняемому файлу драйвера должен быть задан с помощью свойства webdriver.gecko.driver

Я пытаюсь запустить Mozilla, но все же я получаю эту ошибку:

Исключение в streamе «main» java.lang.IllegalStateException: путь к исполняемому файлу драйвера должен быть задан с помощью свойства webdriver.gecko.driver; для получения дополнительной информации см. https://github.com/mozilla/geckodriver . Последняя версия может быть загружена с https://github.com/mozilla/geckodriver/releases

Я использую версию Selenium 3.0.01 Beta и Mozilla 45 . Я тоже пробовал Mozilla 47 . но все-таки одно и то же.

Selenium клиентов Selenium попытается найти исполняемый файл geckodriver из системы PATH . Вам нужно будет добавить каталог, содержащий исполняемый файл, в системный путь.

  • В системах Unix вы можете сделать следующее, чтобы добавить его к пути поиска вашей системы, если вы используете оболочку, совместимую с bash:

     export PATH=$PATH:/path/to/geckodriver 
  • В Windows вам необходимо обновить системную переменную Path, чтобы добавить полный путь к исполняемому файлу. Принцип такой же, как и в Unix.

Все нижеприведенные настройки для запуска последней версии firefox с использованием любого языка программирования могут применяться для Selenium2 чтобы включить Marionette в явном виде. С Selenium 3.0 и более поздними версиями вам не нужно ничего делать, чтобы использовать Marionette, поскольку по умолчанию она включена.

Чтобы использовать Marionette в своих тестах, вам нужно будет обновить нужные вам возможности для ее использования.

Java :

Исключением является, очевидно, что вам нужно скачать последний geckodriver.exe отсюда и установить загруженный путь geckodriver.exe где он существует на вашем компьютере как системное свойство с переменным webdriver.gecko.driver прежде чем запускать драйвер для марионетки и запустить firefox, как webdriver.gecko.driver ниже:

 //if you didn't update the Path system variable to add the full directory path to the executable as above mentioned then doing this directly through code System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe"); //Now you can Initialize marionette driver to launch firefox DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); WebDriver driver = new MarionetteDriver(capabilities); 

И для Selenium3 используйте как: –

 WebDriver driver = new FirefoxDriver(); 

Если у вас все еще есть проблемы, следуйте этой ссылке, которая поможет вам решить вашу проблему

.NET :

 var driver = new FirefoxDriver(new FirefoxOptions()); 

Python :

 from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities caps = DesiredCapabilities.FIREFOX # Tell the Python bindings to use Marionette. # This will not be necessary in the future, # when Selenium will auto-detect what remote end # it is talking to. caps["marionette"] = True # Path to Firefox DevEdition or Nightly. # Firefox 47 (stable) is currently not supported, # and may give you a suboptimal experience. # # On Mac OS you must point to the binary executable # inside the application package, such as # /Applications/FirefoxNightly.app/Contents/MacOS/firefox-bin caps["binary"] = "/usr/bin/firefox" driver = webdriver.Firefox(capabilities=caps) 

Рубин :

 # Selenium 3 uses Marionette by default when firefox is specified # Set Marionette in Selenium 2 by directly passing marionette: true # You might need to specify an alternate path for the desired version of Firefox Selenium::WebDriver::Firefox::Binary.path = "/path/to/firefox" driver = Selenium::WebDriver.for :firefox, marionette: true 

JavaScript (Node.js) :

 const webdriver = require('selenium-webdriver'); const Capabilities = require('selenium-webdriver/lib/capabilities').Capabilities; var capabilities = Capabilities.firefox(); // Tell the Node.js bindings to use Marionette. // This will not be necessary in the future, // when Selenium will auto-detect what remote end // it is talking to. capabilities.set('marionette', true); var driver = new webdriver.Builder().withCapabilities(capabilities).build(); 

Использование RemoteWebDriver

Если вы хотите использовать RemoteWebDriver на любом языке, это позволит вам использовать Marionette в Selenium Grid.

Python :

 caps = DesiredCapabilities.FIREFOX # Tell the Python bindings to use Marionette. # This will not be necessary in the future, # when Selenium will auto-detect what remote end # it is talking to. caps["marionette"] = True driver = webdriver.Firefox(capabilities=caps) 

Рубин :

 # Selenium 3 uses Marionette by default when firefox is specified # Set Marionette in Selenium 2 by using the Capabilities class # You might need to specify an alternate path for the desired version of Firefox caps = Selenium::WebDriver::Remote::Capabilities.firefox marionette: true, firefox_binary: "/path/to/firefox" driver = Selenium::WebDriver.for :remote, desired_capabilities: caps 

Java :

 DesiredCapabilities capabilities = DesiredCapabilities.firefox(); // Tell the Java bindings to use Marionette. // This will not be necessary in the future, // when Selenium will auto-detect what remote end // it is talking to. capabilities.setCapability("marionette", true); WebDriver driver = new RemoteWebDriver(capabilities); 

.СЕТЬ

 DesiredCapabilities capabilities = DesiredCapabilities.Firefox(); // Tell the .NET bindings to use Marionette. // This will not be necessary in the future, // when Selenium will auto-detect what remote end // it is talking to. capabilities.SetCapability("marionette", true); var driver = new RemoteWebDriver(capabilities); 

Примечание. Как и другие драйверы, доступные для Selenium у других поставщиков браузеров, Mozilla выпустила исполняемый файл, который будет работать вместе с браузером. Следуйте этому за более подробной информацией.

Вы можете скачать последнюю версию geckodriver для поддержки последней версии firefox здесь

  1. Загрузите драйвер gecko с веб-сайта seleniumhq (теперь он находится на GitHub, и вы можете скачать его здесь ).
    1. У вас будет zip (или tar.gz), чтобы извлечь его.
    2. После извлечения вы получите файл geckodriver.exe (соответствующий исполняемый файл в Linux).
    3. Создать папку в C: названный SeleniumGecko (или соответствующий)
    4. Скопируйте и вставьте geckodriver.exe в SeleniumGecko
    5. Задайте путь для драйвера gecko, как показано ниже.

,

 System.setProperty("webdriver.gecko.driver","C:\\geckodriver-v0.10.0-win64\\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); 

Selenium WebDriver Код Java:

Загрузите драйвер Gecko из https://github.com/mozilla/geckodriver/releases на основе вашей платформы. Извлеките его в нужное место по вашему выбору. Напишите следующий код:

 System.setProperty("webdriver.gecko.driver", "D:/geckodriver-v0.16.1-win64/geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.get("https://www.lynda.com/Selenium-tutorials/Mastering-Selenium-Testing-Tools/521207-2.html"); 

Каждая услуга драйвера в seleniumе вызывает аналогичный код (следующий – код, специфичный для firefox) при создании объекта драйвера

  @Override protected File findDefaultExecutable() { return findExecutable( "geckodriver", GECKO_DRIVER_EXE_PROPERTY, "https://github.com/mozilla/geckodriver", "https://github.com/mozilla/geckodriver/releases"); } 

теперь для драйвера, который вы хотите использовать, вы должны установить системное свойство со значением пути к исполняемому файлу драйвера.

для firefox GECKO_DRIVER_EXE_PROPERTY = “webdriver.gecko.driver”, и это можно установить перед созданием объекта драйвера, как показано ниже

 System.setProperty("webdriver.gecko.driver", "./libs/geckodriver.exe"); WebDriver driver = new FirefoxDriver(); 
  • Selenium: Как остановить процесс geckodriver, влияющий на память ПК, не вызывая driver.quit ()?
  • Имя пользователя и пароль аутентификации Windows Python не работает
  • Как запустить Google Chrome с помощью Selenium RC?
  • У нас есть какие-либо общие функции, чтобы проверить, полностью ли загружена страница в Selenium
  • Как загрузить файл на событие click с помощью selenium?
  • Как щелкнуть по в браузерах с помощью Selenium Webdriver?
  • WatiN или Selenium?
  • HTTP Basic Auth через URL в Firefox не работает?
  • Selenium IE WebDriver работает только при отладке
  • XPath: разница между точкой и текстом ()
  • Selenium WebDriver: нажатие на элементы в SVG с использованием XPath
  • Interesting Posts

    Невозможно уменьшить доступ к тому разделов в Windows

    Как не потерять Wi-Fi после перехода в режим ожидания?

    Круг HTML5 / CSS3 с частичной границей

    Есть ли способ выполнить установку Windows 7, если вы не можете запустить / загрузить Windows 7?

    Отображение изображений из определенной папки на SD-карте с использованием gridview

    Соединение остается помеченным как ESTABLISHED, даже если хост не подключен

    Резервные приложения Metro для установки позже или на других ПК

    Разрешение редактора кода на Ubuntu

    Угловая js init ng-model от значений по умолчанию

    понимание базовой рекурсии

    Преобразуйте матрицу в таблицу из трех столбцов («обратный поворот», «разворот», «сгладить», «нормализовать»)

    Запрос, если firebase database Android существует!

    Привязка отображает состояние в режиме просмотра MVVM?

    Выключение без пароля пользователя sudo в ubuntu

    Как получить контактный идентификатор электронной почты?

    Давайте будем гением компьютера.