Selenium"无法找到一组匹配的功能",尽管驱动程序位于/ usr/local/bin中

Kur*_*eek 33 python selenium

我正在尝试关注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为我解决了这个问题.然而,我不同意根本原因的解释.

  • 更新了Firefox 48→53
  • 已更新至Selenium 3.4.1

我还使用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在命令行运行。应该有几个。


ela*_*ver 6

对我来说,仅仅升级FF就足够了


Jer*_* S. 5

Mac 用户在这里。

我通过确保 Firefox 被命名为“Firefox”并在“Applications”文件夹中解决了这个问题。我之前称它为“Firefox 58”(我有多个版本)。