После установки 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