【问题标题】:"Unable to find a matching set of capabilities" -- Selenium with Python 2.7“无法找到一组匹配的功能”——Selenium 与 Python 2.7
【发布时间】:2018-08-27 00:03:02
【问题描述】:

将 Selenium 3.8.1 与 Python 2.7 与 Firefox Portable 54、64 位一起使用,我在运行此脚本时收到以下错误消息:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary_argument = FirefoxBinary(r'C:\Users\[removed]\FirefoxPortable.exe')
driver = webdriver.Firefox(firefox_binary=binary_argument)

driver.get("http://icanhazip.com")

.

Traceback (most recent call last):
  File "F:/cp/python-selenium3/ToyScripts/launch_portable_browser.py", line 5, in <module>
    driver = webdriver.Firefox(firefox_binary=binary_argument)
  File "C:\ProgramData\Anaconda2\envs\automation2\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 162, in __init__
    keep_alive=True)
  File "C:\ProgramData\Anaconda2\envs\automation2\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 154, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "C:\ProgramData\Anaconda2\envs\automation2\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 243, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\ProgramData\Anaconda2\envs\automation2\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
    self.error_handler.check_response(response)
  File "C:\ProgramData\Anaconda2\envs\automation2\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities

在它消失之前,我确实看到了闪屏片刻。另外值得注意的是,手动使用时浏览器可以正常工作。

我怀疑便携式浏览器需要切换一些设置以允许 Selenium 接管,但这是我知道/怀疑的程度。

感谢您对此提供的任何帮助。

【问题讨论】:

    标签: python windows selenium firefox


    【解决方案1】:

    通过修改DesiredCapabilities解决:

    from selenium import webdriver
    from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    binary_argument = FirefoxBinary(r'C:\Users\[removed]\FirefoxPortable.exe')
    
    capabilities_argument = DesiredCapabilities().FIREFOX
    capabilities_argument["marionette"] = False
    
    driver = webdriver.Firefox(firefox_binary=binary_argument, capabilities=capabilities_argument)
    
    driver.get("http://icanhazip.com")
    

    【讨论】:

    • 如果你在 windows 环境中使用这些东西,你应该标记 windows...
    【解决方案2】:

    我可以通过从https://www.seleniumhq.org/download/ 安装最新的 geckodriver 来解决这个问题 和来自https://www.mozilla.org/en-US/firefox/ 的最新Firefox。 下载 geckodriver(32 位或 64 位)时请考虑您的 Windows。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 2018-07-30
      • 2020-04-28
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 2018-05-26
      • 1970-01-01
      相关资源
      最近更新 更多