Skip to main content
 首页 » 编程设计

python之"Unable to find a matching set of capabilities"-- 使用 Python 2.7 的 Selenium

2025年05月04日21lonelyxmas

将 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 接管,但这就是我所知道/怀疑的范围。

感谢您对此的任何帮助。

请您参考如下方法:

通过修改 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")