Исполняемый файл 'geckodriver' должен быть в PATH

Пользователь Mac OS здесь. Я пытаюсь запустить команду в моем Python IDLE:

from selenium import webdriver
browser = webdriver.Firefox()

и я получаю следующее сообщение об ошибке:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    browser = webdriver.Firefox()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 160, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 83, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

Я побежал brew install geckodriver, а также which geckodriver возвращается /usr/local/bin/geckodriver так что я уверен, что он установлен правильно. Кажется, что он все еще не работает должным образом, однако?

1 ответ

Ваше сообщение об ошибке довольно ясно:

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

Вы должны установить путь к геккодриверу. Есть разные способы сделать это.

Вы можете установить путь к geckodriver в коде:

from selenium import webdriver
browser = webdriver.Firefox(executable_path=r'/.../path2Your/geckodriver')

или вставьте путь к geckodriver в переменную окружения PATH:

export PATH=$PATH:/.../path2Your/geckodriver

Я никогда не пытался переместить исполняемый файл в /usr/local/bin/ в Mac OS. Я пытался в Ubuntu OS, и это работает. Я думаю, должно быть хорошо.

Вероятно, это потому, что файл не является исполняемым. Если это не так, перейдите к /usr/local/bin/ и сделать его исполняемым:

chmod +x geckodriver

Я использую ubuntu 18.04, и здесь была такая же проблема.

В моем случае это нормально работает. Надеюсь, это сработает для вас!

sudo apt-get install firefox-geckodriver

One of the things that best worked for me is just copy the executable geckodriver file.

Go into the bin folder:

If your on linux you can find it in the below location:

/home/user_name/.local/bin

Paste your geckodriver exe here.

So your final code should be like this:

    from selenium import webdriver
    driver = webdriver.Firefox(executable_path = 'geckodriver')

This worked for me like charm but am not sure whether it is the right way.

Другие вопросы по тегам