首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mac上Python中的Selenium - Geckodriver可执行文件需要在PATH中

Mac上Python中的Selenium - Geckodriver可执行文件需要在PATH中
EN

Stack Overflow用户
提问于 2017-01-03 11:27:16
回答 5查看 29.6K关注 0票数 14

我是编程新手,大约两个月前就开始使用Python了,我正在复习斯威加特的Automate the Boring with Python text。我正在使用Spyder 3,并且已经安装了selenium模块和Firefox浏览器。我在python文件中使用了以下代码

代码语言:javascript
运行
复制
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://inventwithpython.com')

我得到这个错误:

代码语言:javascript
运行
复制
Message: 'geckodriver' executable needs to be in PATH.

除了进入终端并使用以下命令安装之外,我还下载了geckodriver.exe

代码语言:javascript
运行
复制
brew install geckodriver

奇怪的是,如果我进入终端,输入"python“,然后把代码放进去,它就能工作了,但当我在Spyder中运行文件时却不行。我需要将geckodriver.exe文件放在哪里才能正常工作?我尝试将其放入各种文件夹(与python文件相同的文件夹、与webdriver文件相同的文件夹、用户bin等),但得到相同的错误

我看过类似的问题,但似乎找不到有效的方法。我也尝试过Chrome,但我得到了同样的错误,但是使用chromedriver。

代码语言:javascript
运行
复制
which geckodriver

收益/usr/local/bin/geckodriver

我也是在Mac上,所以文件路径对我来说比在windows上更难一些。

EN

Stack Overflow用户

发布于 2017-10-16 23:13:38

也许有人可以解释为什么找不到路径。我也希望这能帮助其他人解决他们自己的路径问题。

您当然可以将geckodriver可执行文件放在您喜欢的任何位置。在我的Mac上,我选择了~/.local/bin,因为它是存储特定于用户帐户的可执行文件的常见位置。例如。Heroku CLI放在~/.local/share中。此方法还消除了在将可执行文件添加到/usr/local/bin等系统位置时需要超级用户访问的情况

然后,我使用以下命令将其添加到.profile中的路径中

代码语言:javascript
运行
复制
    EXPORT PATH=$PATH:~/.local/bin

我通过打开终端并检查以下内容进行了测试:

代码语言:javascript
运行
复制
    geckodriver --version

它工作得很好。

但是在Python虚拟环境中,由于某些原因,系统路径不能通过??我通过添加到selenium测试脚本中发现了这一点:

代码语言:javascript
运行
复制
    import sys

    for p in sys.path:
        print(p)

结果显示:

代码语言:javascript
运行
复制
    /Users/philip/Devel/myproject
    /Users/philip/.virtualenvs/myproject/lib/python36.zip
    /Users/philip/.virtualenvs/myproject/lib/python3.6
    /Users/philip/.virtualenvs/myproject/lib/python3.6/lib-dynload
    /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6
    /Users/philip/.virtualenvs/myproject/lib/python3.6/site-packages

因此,最终我必须使用以下命令指定路径:

代码语言:javascript
运行
复制
    self.browser = webdriver.Firefox(executable_path=r'/Users/philip/.local/bin/geckodriver')

这种方法工作得很好,但我仍然想知道为什么我不能在虚拟环境中设置路径。

票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41435983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档