WebDriverException: 'geckodriver' 可执行文件需要在 PATH 中,即使它是
WebDriverException: 'geckodriver' executable needs to be in PATH even though it is
尝试在 spyder 中使用 selenium 使 firefox 运行。我当前的代码是
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 在该文件夹中。
我也试过将路径导出到 ~./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 中,它应该会自动 运行 但即使我明确说明路径,它似乎仍然找不到它。
如果重要的话,这是 mac 运行ning High Sierra。
这个错误信息...
WebDriverException: 'geckodriver' executable needs to be in PATH.
...表示在预期的默认位置未找到 GeckoDriver。
解决方案
由于您使用的是基于 MAC 的系统,因此您需要传递 Key executable_path 连同 Value 指的是 GeckoDriver 的 绝对路径 作为如下:
from selenium import webdriver
browser = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
额外考虑
确保以下内容:
- GeckoDriver 存在于指定位置。
- GeckoDriver 拥有非 root 用户的可执行权限。
- 以非根用户身份执行你的@Test。
尝试在 spyder 中使用 selenium 使 firefox 运行。我当前的代码是
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 在该文件夹中。
我也试过将路径导出到 ~./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 中,它应该会自动 运行 但即使我明确说明路径,它似乎仍然找不到它。
如果重要的话,这是 mac 运行ning High Sierra。
这个错误信息...
WebDriverException: 'geckodriver' executable needs to be in PATH.
...表示在预期的默认位置未找到 GeckoDriver。
解决方案
由于您使用的是基于 MAC 的系统,因此您需要传递 Key executable_path 连同 Value 指的是 GeckoDriver 的 绝对路径 作为如下:
from selenium import webdriver
browser = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
额外考虑
确保以下内容:
- GeckoDriver 存在于指定位置。
- GeckoDriver 拥有非 root 用户的可执行权限。
- 以非根用户身份执行你的@Test。