Python - Selenium в Ubuntu OSError: [Errno 20] Не каталог

После установки Selenium в Ubuntu и добавления geckodriver в путь я получаю эту ошибку при запуске

from selenium import webdriver

driver = webdriver.Firefox()

Ошибка:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 135, in __init__
self.service.start()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 64, in start
stdout=self.log_file, stderr=self.log_file)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 20] Not a directory

Что происходит?

EDIT: Решено использовать хромированный реверс вместо geckodriver.

Ответ 1

Была та же проблема. Для меня было два способа исправить это:

Добавить исполняемый_файл arg в webdriver:

driver = webdriver.Firefox(executable_path='/path/to/geckodriver')

И второй способ добавить папку, содержащую geckodriver, используя экспорт (только папка, а не geckodriver):

$ export PATH=$PATH:/path/to/

Ответ 2

В дополнение к ответу @Poloq, самый простой способ - сохранить ваш geckodriver двоичный файл в каталоге, который уже находится в вашем PATH.

mv geckodriver /usr/local/bin

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

Ответ 3

Проблема в том, что вы переименовали "geckodriver" в "проводы".

Решение состоит в том, чтобы добавить "geckodriver" в путь поиска, тогда он должен работать.

Ответ 4

В дополнение к предоставленным ответам есть также эта опция, где вы можете скопировать драйвер в /usr/bin:

sudo cp geckodriver /usr/bin 

Ответ 5

Selenium доступен из репозиториев Ubuntu по умолчанию в Ubuntu 16.04 и более поздних версиях. Чтобы установить селен, откройте терминал и введите:

sudo apt install python-selenium # for Python 2.x

и/или

sudo apt install python3-selenium # for Python 3.x  

Затем введите python, чтобы запустить интерпретатор Python, и веб-драйвер импорта selenium должен работать следующим образом:

$ python  
>>> from selenium import webdriver

Предполагая, что путь ~/.local/bin находится в вашем пути PATH, вот как установить веб-драйвер Firefox, называемый geckodriver:

wget https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-linux64.tar.gz
tar xvfz geckodriver-v0.20.1-linux64.tar.gz
mv geckodriver ~/.local/bin

источник:https://askubuntu.com/info/1041541/i-want-to-install-selenium-webdriver-in-my-ubuntu-16-04-system-for-python