当前位置: 首页 > 面试题库 >

WebDriverException:即使'geckodriver'可执行文件也必须位于PATH中

方浩旷
2023-03-14
问题内容

试图让Firefox在spyder中使用硒运行。我当前的代码是

from selenium import webdriver
import os
os.environ["PATH"] += ":/usr/local/bin/geckodriver"
browser = webdriver.Firefox()

我仍然收到此错误:

runfile('/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder/test.py', 
wdir='/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder')
Traceback (most recent call last):

  File "<ipython-input-1-3f3f96ccf515>", line 1, in <module>

runfile('/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder/test.py', 
wdir='/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder')

  File "/Applications/anaconda3/lib/python3.6/site- 
  packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
  execfile(filename, namespace)

  File "/Applications/anaconda3/lib/python3.6/site- 
  packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder/test.py", 
line 12, in <module>
  browser = webdriver.Firefox()

  File "/Applications/anaconda3/lib/python3.6/site- 
packages/selenium/webdriver/firefox/webdriver.py", line 152, in 
__init__
self.service.start()

  File "/Applications/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.

即使gekodriver在该文件夹中。

证明gekodriver位置正确

我也尝试过将路径导出到〜。/ bash_profile,现在看起来像这样。

Last login: Fri Apr 20 10:57:16 on ttys000
dhcp-54-85:~ mherl$ nano ./bash_profile
dhcp-54-85:~ mherl$ nano .bash_profile
  GNU nano 2.0.6             File: .bash_profile                      
Modified


# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

# added by Anaconda3 5.1.0 installer
export PATH="/Applications/anaconda3/bin:$PATH"

#added by mherl to show path to gekodriver
export PATH=$PATH:/usr/local/bin/gekodriver

我还在spyder中设置了当前路径:

/usr/local/bin
/Users/mherl/Dropbox/AnacondaProjects/MWS/MWSSpyder

gekodriver在其中

/usr/local/bin

我到处都看过,大多数人说如果它位于/ usr / local / bin中,它应该自动运行,但是即使我
明确声明了路径,它仍然似乎找不到。

如果重要的话,这是一台运行High Sierra的Mac。


问题答案:

这个错误讯息…

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

…意味着在预期的默认 位置找不到GeckoDriver

当您使用基于MAC系统,你需要通过按键executable_path与沿值指的是绝对路径的的GeckoDriver如下:

from selenium import webdriver

browser = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')

Additional Consideration

Ensure the following :

  • GeckoDriver is present in the specified location.
  • GeckoDriver is having executable permission for non-root users.
  • Execute your @Test as a non-root user.


 类似资料:
  • 问题内容: 我正在使用IDLE,并且已经安装了selenium模块和浏览器。每当我尝试运行r函数时,都会得到以下信息: 例外: 我想我需要设置路径,geckodriver但不确定如何设置,所以谁能告诉我该怎么做? 问题答案: :消息:可执行文件必须位于PATH中。 首先,你需要从此处下载最新的可执行geckodriver,以使用硒运行最新的。 实际上,客户端绑定试图从系统中找到可执行文件PATH。

  • 问题内容: 我是编程的新手,大约2个月前开始使用Python,现在正在研究Sweigart的《用Python文本自动完成无聊的事情》。我正在使用Spyder 3,并且已经安装了selenium模块和Firefox浏览器。我在python文件中使用了以下代码 我收到此错误: 除了进入终端并使用进行安装外,我还下载了geckodriver.exe。 奇怪的是,如果我进入终端并输入“ python”,然

  • 问题内容: 我是网络爬虫的新手,我正在尝试使用以下代码修改用户代理: 环境变量中的路径还可以,但我一直收到此错误消息: 您能帮我解决这个问题吗? 问题答案: 此错误消息… …暗示在 环境变量* PATH 变量中指定的位置找不到 ChromeDriver 。 *** 解 你需要通过 按键 executable_path 与沿 值 指的绝对路径 ChromeDriver 与一起 ChromeOptio

  • 试图让firefox在Spyder中使用selenium运行。我当前的代码是 我仍然得到这个错误: 尽管gekodriver在那个文件夹中。 如果这很重要的话,这是一个运行高塞拉的mac。

  • 问题内容: 错误信息: “ chromedriver”可执行文件必须位于PATH中 我试图在pycharm中使用Selenium编写脚本,但是发生了以上错误。我已经将硒链接到pycharm上(如此处所示)(最新)。 我是硒的新手,不是“ selenium”文件夹中的chromedriver。如果不是,我在哪里可以找到它并将其添加到路径中? 顺便说一句,我尝试在cmd中键入“ chromedrive

  • 问题内容: 错误信息: “ chromedriver”可执行文件必须位于PATH中 我试图在pycharm中使用Selenium编写脚本,但是发生了以上错误。我已经将selenium链接到pycharm上(如此处所示)(最新)。 我是selenium的新手,不是“ selenium”文件夹中的chromedriver。如果不是,我在哪里可以找到它并将其添加到路径中? 顺便说一句,我尝试在cmd中键