我正在尝试关注Selenium的教程,http://selenium-python.readthedocs.io/getting-started.html.我已下载最新版本geckodriver并将其复制到/usr/local/bin.但是,当我尝试
from selenium import webdriver
driver = webdriver.Firefox()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
Traceback (most recent call last):
File "/Users/kurtpeek/Documents/Scratch/selenium_getting_started.py", line 4, in <module>
driver = webdriver.Firefox()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 152, in __init__
keep_alive=True)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 98, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 188, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities
[Finished in 1.2s with exit code 1]
Run Code Online (Sandbox Code Playgroud)
来自https://github.com/SeleniumHQ/selenium/issues/3884,似乎其他用户遇到类似的问题,但Selenium团队无法重现它.如何让Selenium使用Firefox?(它确实与chromedriver一个webdriver.Chrome()实例一起工作,所以我怀疑这可能是Selenium中的一个错误).
Win*_*ags 24
更新Firefox和Selenium为我解决了这个问题.然而,我不同意根本原因的解释.
我还使用Homebrew重新安装/更新了Geckodriver,并明确地将其用作Selenium WebDriver的可执行文件,但事实证明没有必要减轻"无法找到匹配的功能集"错误.
小智 9
我遇到了同样的问题,问题与使用 Firefox ESR(我在 Debian 上)有关。更具体地说,我在 Debian 10 上使用 64 位 Firefox 68.11.0esr、python3.7、selenium 3.141.0 和 geckodriver 0.27.0。
这是我使用的失败的标准示例:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://google.com")
Run Code Online (Sandbox Code Playgroud)
按照这个答案中的建议,我改变了:
browser = webdriver.Firefox()
到
browser = webdriver.Firefox(firefox_binary="/usr/bin/firefox-esr")
它奏效了。
如果不知道firefox-esr的路径,可以sudo find / -name firefox-esr在命令行运行。应该有几个。
Mac 用户在这里。
我通过确保 Firefox 被命名为“Firefox”并在“Applications”文件夹中解决了这个问题。我之前称它为“Firefox 58”(我有多个版本)。