【问题标题】:"WebDriverException: 'geckodriver' executable needs to be in PATH" error while 'driver = webdriver.Firefox()' through Selenium“WebDriverException:'geckodriver' 可执行文件需要在 PATH 中”错误,而'driver = webdriver.Firefox()' 通过 Selenium
【发布时间】:2018-06-11 01:39:53
【问题描述】:

对于那里的专家,我使用 Spyder(在 Mac 上)在 Python 中运行了以下代码:

>from selenium import webdriver
>from selenium.webdriver.common.keys import Keys
>driver = webdriver.Firefox()

我收到以下错误:

>Traceback (most recent call last):
>
>  File "<ipython-input-4-fd567e24185f>", line 1, in <module>
>    driver = webdriver.Firefox()
>
>  File "/Users/liminfang/anaconda3/lib/python3.6/site->packages/selenium/webdriver/firefox/webdriver.py", line 160, in __init__
>    self.service.start()
>
>  File "/Users/liminfang/anaconda3/lib/python3.6/site->packages/selenium/webdriver/common/service.py", line 83, in start
>    os.path.basename(self.path), self.start_error_message)
>
>WebDriverException: 'geckodriver' executable needs to be in PATH. 

请注意,我已经通过执行将“geckodriver”可执行文件添加到 PATH

>export PATH=$PATH:/Users/liminfang/anaconda3/geckodriver 

在终端中。我重新启动了计算机,但错误仍然存​​在。有人知道这里发生了什么吗?请帮忙。谢谢!

【问题讨论】:

  • 认为路径中缺少 .exe,即 geckodriver.exe
  • @Limin 如果我的回答解决了您的问题,请将其标记为接受
  • @SimonN geckodriver 是一个文件夹。我将可执行文件放在该文件夹中。因为我用的是mac,所以没有扩展名.exe。
  • @M. Khajavi 我使用的是 Mac OS 10.13.4。所以我不确定你的解决方案是否有效。明天在我的电脑上试试,然后回复你。谢谢。

标签: python selenium firefox selenium-webdriver geckodriver


【解决方案1】:

geckodriver.exe放入脚本文件夹,然后调用webdriver.Firefox

driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=fp, executable_path='geckodriver.exe')

我有 52.0.2(64 位)和 Geckodriver 0.15.0-win64,它正在工作!

【讨论】:

    【解决方案2】:

    此错误消息...

    WebDriverException: 'geckodriver' executable needs to be in PATH. 
    

    ...暗示 GeckoDriver 在您在 PATH 变量中提到的目录中找不到。

    解决方案

    当您使用 ipython 时,您可以从 mozilla/geckodriver 下载最新的 GeckoDriver 并将其放置在系统中的任何位置。在初始化新的 WebDriver/WebClient 会话时,通过 executable_path 传递 GeckoDriver 二进制文件的 absolute 路径 论证如下:

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

    【讨论】:

    • 我尝试了您的解决方案,仍然收到很长的错误消息。因为太长,这里不能发。请注意,我使用的是 Mac。
    • 问题出在 ipython 上。如果我直接在终端中运行脚本,一切正常。
    猜你喜欢
    • 2017-08-03
    • 2018-03-25
    • 2017-03-04
    • 2018-11-26
    • 2021-04-15
    • 2020-06-05
    • 2018-10-01
    • 1970-01-01
    相关资源
    最近更新 更多