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

标签 python windows selenium firefox

将 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")

关于python - "Unable to find a matching set of capabilities"-- 使用 Python 2.7 的 Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49345838/

相关文章:

python - 在 Windows 中将 VIM 用于 Python IDE?

Python 语法错误(无效语法)

python - 使用isin模拟sql的IN子句

jquery - jQuery 在 IE 中悬停的问题

C++ - WinAPI 获取所有连接的 USB 设备的列表

java - 使用 Java 的 Selenium Webdriver - 单击超链接的下拉容器

python - selenium PhantomJS send_keys 不起作用

Selenium 错误: This version of ChromeDriver only supports Chrome version 81 | My driver version is 81. 0.4044.69

python - 使用具有混合类型列的 rpy2 将 pandas df 转换为 R data.frame

python - 'ascii' 编解码器无法对位置 9 : ordinal not in range(128) 中的字符 u'\u2013' 进行编码