Здравствуйте, друзья, с версиями Selenium Webdriver после выпуска Selenium 3.0 вы, возможно, столкнулись с проблемой исключения недопустимого состояния при запуске браузера Firefox. В этом руководстве мы представим решение для этого исключения, а также его первопричину.
Решение на самом деле очень простое и выполняется в несколько шагов. Но новички часто не понимают, куда копать при разборе этой проблемы.
Подробности исключения
Exception в потоке “main” java.lang.Исключение IllegalStateException: путь к исполняемому файлу драйвера должен быть задан системным свойством webdriver.gecko.driver; для получения дополнительной информации см. https://github.com/mozilla/geckodriver . Последнюю версию можно загрузить с https://github.com/mozilla/geckodriver/releases
Exception in thread “main” java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
Вот так ошибка выглядит в оригинальном сообщении
Шаги по воспроизведению
Запустите браузер Firefox с версиями Selenium 3.0 и выше напрямую, не задавая путь “webdriver.gecko.driver”.
WebDriver driver = new FirefoxDriver();
Решение проблемы
- Скачиваем geckodriver.exe с GeckoDriver Github Release Page. Не устану повторять, что качать надо версию, совместимую с вашей версией ОС
- Установите System Property для “webdriver.gecko.driver” с адресом geckodriver.exe path.
- System.setProperty(“webdriver.gecko.driver”,”geckodriver.exe path”); (делаем по аналогии, как мы делали при настройке chromedriver.exe).
Пример кода
System.setProperty("webdriver.gecko.driver", pathToGeckoDriver + "\\geckodriver.exe"); WebDriver driver = new FirefoxDriver();
Exception Detail
Exception in thread “main” java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
Steps to reproduce
Launch the Firefox browser with Selenium 3.0 and above versions directly without setting “webdriver.gecko.driver” path.
WebDriver driver = new FirefoxDriver();
Resolution
- Download geckodriver.exe from GeckoDriver Github Release Page. Make sure to download the right driver file based on your platform and OS version.
- Set the System Property for “webdriver.gecko.driver” with the geckodriver.exe path.
- System.setProperty(“webdriver.gecko.driver”,”geckodriver.exe path”); (This is similar to the way we use to set system property for chromedriver.exe).
Code Snippet
System.setProperty("webdriver.gecko.driver", pathToGeckoDriver + "\\geckodriver.exe"); WebDriver driver = new FirefoxDriver();