FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'geckodriver': 'geckodriver' с GeckoDriver и Python в MAC OS - PullRequest
0 голосов
/ 24 октября 2018

Я создал тестовый скрипт для открытия URL-адреса в Eclipse с помощью python и получил следующую ошибку:

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

Во время обработки вышеуказанного исключения произошло другое исключение:

Traceback (most recent call last):
  File "/Applications/Eclipse.app/Contents/MacOS/C:\EclipseWorkspaces\csse120/PythonSeleniumProject/src/PythonSeleniumModule.py", line 13, in <module>
    driver = webdriver.Firefox()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/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. 

Я прочитал в переполнении стека о связанных темах, но ни одна из них не отвечает / не решает мою проблему.

Пожалуйста, сообщите.Спасибо.

1 Ответ

0 голосов
/ 24 октября 2018

Это сообщение об ошибке ...

FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver': 'geckodriver'
.
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

... означает, что вашей программе не удалось найти GeckoDriver в указанном каталоге.

СогласноИспытания вашего кода, которые вы использовали:

driver = webdriver.Firefox()

Поскольку вы не упомянули абсолютный путь GeckoDriver , ваша программа ищет GeckoDriver в пределах путей , указанных в базовой переменной Operating System PATH и не может найти.

Solution

  • Находясь на Mac OS X , загрузите последнюю версию geckodriver-v0.23.0-macos.tar.gz из mozilla / geckodriver , сохраните еев любом месте вашей системы.
  • В вашей программе переопределите пути , упомянутые в вашей операционной системе PATH через аргумент executable_path следующим образом:

    from selenium import webdriver
    
    driver = webdriver.Firefox(executable_path='/path/to/geckodriver')
    print("Firefox Browser Invoked")
    driver.get('http://google.com/')
    driver.quit()
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...