Подтвердить что ты не робот

Нет такого файла или каталога: "geckodriver" для простого приложения Selenium на Python

Я запускаю простой пример selenium для Linux:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("something")

и получите сообщение об ошибке:

FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'

Как это исправить?

$ python
Python 3.5.2 (default, Jun 28 2016, 08:46:01) 
[GCC 6.1.1 20160602] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>> from selenium.webdriver.common.keys import Keys
>>> 
4b9b3361

Ответ 1

Загрузка гекодривера

Исполняемый файл geckodriver можно скачать здесь.

Python3 venv

Загрузите исполняемый файл geckodriver по приведенной выше ссылке и распакуйте его в env/bin/, чтобы сделать его доступным только для виртуальной среды.

Теперь в своем коде Python вы сможете выполнять следующие действия:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("https://stackoverflow.com/")

Linux

Если вы хотите сделать его доступным для всей системы, загрузите исполняемый файл geckodriver по приведенной выше ссылке и распакуйте его в /usr/bin/ (или что-нибудь внутри вашей $ PATH)

Окна

Примечание: для этого требуется пользователь Windows, чтобы проверить и подтвердить

Загрузите geckodriver по приведенной выше ссылке и распакуйте его в C:\Windows\System32\ (или в любую другую переменную среды Path).

Mac OS X

Примечание. Я взял это из ответа Винсента ван Леувена answer на этот самый вопрос. Выкладываю это здесь ради того, чтобы смешать все в одном ответе

Чтобы сделать geckodriver доступным для всей системы, откройте приложение терминала и выполните следующую команду:

brew install geckodriver

Больше информации

Более подробную информацию о селене можно найти здесь:

Selenium требует драйвера для взаимодействия с выбранным браузером. Например, для Firefox требуется geckodriver, который необходимо установить до запуска приведенных ниже примеров. Убедитесь, что это в вашей PATH, e. например, поместите его в /usr/bin или /usr/local/bin.

Несоблюдение этого шага приведет к ошибке selenium.common.exceptions.WebDriverException: Сообщение: исполняемый файл 'geckodriver' должен находиться в переменной PATH.

Ответ 2

Selenium требует geckodriver для взаимодействия с Firefox. Вот как установить geckodriver:

  1. Загрузите geckodriver из https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz (или, если вам нужна 32-битная версия, перейдите в https://github.com/mozilla/geckodriver/releases, чтобы увидеть больше вариантов загрузки)
  2. Извлеките файл в папку загрузок
  3. Откройте консоль и запустите sudo mv ~/Downloads/geckodriver /usr/bin

Ответ 4

Используете ли вы селен 3? Также вы получаете ту же ошибку с python 2.7?

Ответ 5

В Linux вы можете установить Homebrew, а затем через него brew install geckodriver

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
brew install geckodriver

или установив Nix

curl https://nixos.org/nix/install | sh
nix install geckodriver

но добавление другого менеджера пакетов в вашу систему может быть плохой идеей.