我在使用 Python 3 运行 geckodriver 时遇到问题。我最近使用我一直在开发的应用程序切换到 Python 3,并更新了 Firefox(53.0)、Selenium(3.4.3) 和 geckodriver(0.17.1) 。我还使用 OSX 并使用 pip 来安装我的所有软件包。
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
# Set Firefox Settings
# binary = FirefoxBinary('Users/username/Applications/Firefox.app/Contents/MacOS/firefox')
# binary = FirefoxBinary('/Applications/Firefox.app/Contents/MacOS/firefox')
# binary = FirefoxBinary('/Applications/Firefox.app/Contents/MacOS/firefox-bin')
path = '/usr/local/bin/geckodriver'
profile = webdriver.FirefoxProfile()
browser = webdriver.Firefox(executable_path=path,
firefox_profile=profile,
firefox_binary=binary)
browser.get("http://google.com")
Web 浏览器将启动,但随后我将收到以下错误:
Traceback (most recent call last):
File "/Users/jphubert/Desktop/AbstractionProject/py/browsertest.py", line 11, in <module>
firefox_profile=profile),
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 155, in __init__
keep_alive=True)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 183, in start_session
self.capabilities = response['value']
KeyError: 'value'
我已经卸载并重新安装了 Firefox 和 geckodriver,并听取了 @Viragos 的建议以确保我安装了 MacOS 版本。 @Debanjan 让我走上了正确的道路,尝试设置 Firefox 二进制文件并将其包含在 webdriver 配置文件中,但我仍然遇到相同的错误。
我尝试从 GitHub 获取 Firefox 二进制文件并将其放入 .py 文件中,并尝试删除配置文件和可执行路径,但同样的问题仍然存在。我的二进制文件位于正确的位置,如果我自己按照路径并单击其 .exe 文件,它就可以工作,但我无法再运行我的脚本。
我在 Python 2.7 上运行 Selenium 没有任何问题,直到昨天升级 gecko 和 Python 后,我才遇到问题。
谢谢你!