Python 3.5 - исполняемый файл Geckodriver должен находиться в PATH

Я добавил geckodriver.exe в PATH, как вы можете видеть на этом образе, и перезапустил свой компьютер после. Но ошибка все равно появляется.

Вот мой код:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('https://stackoverflow.com')

У вас есть подсказки о том, что я сделал не так?


person Hobsido    schedule 19.06.2017    source источник
comment
Не могли бы вы опубликовать сообщение об ошибке?   -  person cjonesrun    schedule 19.06.2017
comment
Возможный дубликат Selenium с использованием Python - исполняемый файл Geckodriver должен быть в PATH   -  person Andersson    schedule 19.06.2017
comment
В Windows создайте переменную среды webdriver.gecko.driver и установите путь к драйверу (c: \ geckodriver.exe) в качестве значения.   -  person Murthi    schedule 19.06.2017


Ответы (4)


Есть три способа исправить эту ошибку.

  1. Загрузите драйвер gecko и храните его в каталоге, где находится ваш тестовый скрипт python.
  2. Задайте для переменной среды webdriver.gecko.driver путь к драйверу в качестве значения. os.environ["webdriver.gecko.driver"]="c:\geckodriver.exe"

  3. Передайте исполняемый путь к конструктору, например driver = WebDriver.Firefox("path of executable")

person Murthi    schedule 19.06.2017

Правильно ли выставляете возможности? Если вы устанавливаете возможность версии, убедитесь, что она правильная, или удалите ее полностью. Я говорю о следующем:

capabilities.SetCapability("version", "50.0");
person Kiran    schedule 19.06.2017

Я не вижу существенной ошибки в вашем блоке кода. При работе с Selenium 3.4.3, geckodriver v0.17.0, Mozilla Firefox 53.0 с Python 3.6.1 вы можете рассмотреть возможность загрузки geckodriver и сохранения его в любом месте вашего компьютера и настройки абсолютного пути geckodriver через executable_path.

Следует отметить, что текущая привязка Selenium-Python нестабильна с geckodriver и, похоже, зависит от архитектуры. Вы можете найти на github обсуждение и объединить здесь. Таким образом, вам может потребоваться передать абсолютный путь двоичного файла firefox в качестве аргумента firefox_binary при инициализации webdriver

Вот ваш собственный блок кода, который хорошо работает на моей стороне:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
driver.get('https://stackoverflow.com')
person DebanjanB    schedule 19.06.2017
comment
спасибо за ваш ответ, но теперь он говорит: WebDriverException: невозможно найти соответствующий набор возможностей - person Hobsido; 19.06.2017
comment
@Hobsido Можете ли вы подумать о том, чтобы убедиться, что вы указали правильный абсолютный путь для firefox.exe и geckodriver.exe? Какую систему вы используете Linux или Windows? Спасибо - person DebanjanB; 19.06.2017
comment
Я работаю в Windows и проверил: оба пути верны - person Hobsido; 19.06.2017
comment
@@ Hobsido Какие у вас версии Selenium, geckodriver и Mozilla Firefox? Спасибо - person DebanjanB; 19.06.2017
comment
Mozilla Firefox 51.0.1 / Geckodriver 0.17.0 / Selenium 3.4.3 - person Hobsido; 19.06.2017

В Windows 10 это можно решить после замены драйвера Firefox на драйвер Chrome. driver = webdriver.Chrome()

Загрузите Visual Studio 2015, 2017 и 2019 https://aka.ms/vs/16/release/vc_redist.x86.exe ИЛИ https://aka.ms/vs/16/release/vc_redist.x64.exe и установите в соответствии с вашей операционной системой.

Загрузите драйвер Chrome со страницы https://chromedriver.storage.googleapis.com/index.html?path=79.0.3945.36/ в зависимости от вашей операционной системы.

Добавьте драйверы Chrome в свой PATH

person user1206414    schedule 25.01.2020