geckodriver可执行文件需要在路径中

时间:2016-10-14 17:33:39

标签: python

我已阅读过有关此主题的问题,并尝试按照建议进行操作,但我仍然遇到错误。在终端上,我跑了

export PATH=$PATH:/Users/Conger/Documents/geckodriver-0.8.0-OSX

我也试过

    export PATH=$PATH:/Users/Conger/Documents/geckodriver

当我运行以下Python代码时

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/Users/Conger/Documents/Firefox.app'

driver = webdriver.Firefox(capabilities=firefox_capabilities)

我仍然收到以下错误

Python - testwebscrap.py:8
Traceback (most recent call last):
  File "/Users/Conger/Documents/Python/Crash_Course/testwebscrap.py", line 11, in <module>
    driver = webdriver.Firefox(capabilities=firefox_capabilities)
  File "/Users/Conger/miniconda2/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 135, in __init__
    self.service.start()
  File "/Users/Conger/miniconda2/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 71, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x1006df6d0>> ignored
[Finished in 0.194s]

5 个答案:

答案 0 :(得分:40)

你可以通过

降低你的硒

pip install selenium == 2.53.6

这解决了我的问题

答案 1 :(得分:8)

在mac上:

brew install geckodriver

Homebrew是Mac OS X中最受欢迎的软件包管理器,您需要在Mac上安装XCode,然后才能从终端访问。

如果需要,您可以关注this tutorial

答案 2 :(得分:7)

我刚从here下载了最新版 geckodriver (我有win7),并在python目录中添加了exe文件(已经在PATH中)

答案 3 :(得分:6)

首先我们知道gekodriver是Firefox的驱动引擎,我们知道       driver.Firefox()用于打开Firefox浏览器,它将调用gekodriver引擎,因此我们需要为gekodirver提供可执行权限。 所以我们下载最新的gekodriver解压tar包,并将gekodriver放在/usr/bin/ 好的,这是我的答案,我已经测试过了。

答案 4 :(得分:0)

导出路径仅在您输入命令的终端中有效。如果尝试从其他终端运行脚本,则会收到相同的错误。