WebDriverException:“geckodriver”可执行文件需要位于路径中,即使它是

2024-05-19 09:48:31 发布

您现在位置:Python中文网/ 问答频道 /正文

试图让firefox在spyder中使用selenium运行。我现在的代码是

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在那个文件夹里

proof that gekodriver is in the right place

我还尝试将路径导出到~./bash_配置文件,现在看起来像这样

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中,它应该自动运行,但即使我显式地声明了路径,它似乎仍然找不到它

这是一台运行速度很快的mac电脑,如果这很重要的话


Tags: pathinpybashbinlinesiteusers
1条回答
网友
1楼 · 发布于 2024-05-19 09:48:31

此错误消息

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

…表示在预期的默认位置未找到壁虎河

解决方案

在使用基于MAC的系统时,您需要传递可执行路径以及,参考GeckoDriver绝对路径,如下所示:

from selenium import webdriver

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

额外考虑

确保:

  • GeckoDriver位于指定位置
  • GeckoDriver对非root用户具有可执行权限
  • 以非root用户身份执行@Test

相关问题 更多 >

    热门问题