You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Selenoid配置启动Opera遇SessionNotCreatedException报错求解

解决Selenoid运行Opera测试时的SessionNotCreatedException错误

问题根源分析

  1. 错误使用ChromeOptions配置Opera:Opera浏览器需要专属的配置类,用ChromeOptions会导致能力参数不匹配。
  2. browser.json镜像与实际拉取不一致:你本地拉取的是selenoid/opera:99.0,但配置文件里写的是selenoid/vnc_opera:99.0,镜像名称不匹配会导致Selenoid无法启动正确容器。
  3. Selenoid选项冗余配置:selenoid:options中重复配置了browserName和version,这些参数应该通过Options对象本身设置,而非嵌套在selenoid专属选项里。

具体修复步骤

1. 替换ChromeOptions为OperaOptions

修改Python代码,使用Opera专属配置类:

from selenium.webdriver import OperaOptions  # 替换原ChromeOptions导入

options = OperaOptions()
options.browser_name = config["browser"]  # 明确设置浏览器名称为opera

selenoid_options = {
    "enableVNC": True,
    "enableVideo": False
}

options.set_capability('selenoid:options', selenoid_options)
return webdriver.Remote(
    command_executor=f'http://{selenoid_host}:4444/wd/hub', 
    options=options
)

注:若你的Selenium版本较旧,需改用from selenium.webdriver.opera.options import Options导入配置类。

2. 修正browser.json镜像配置

将配置文件中的镜像名称与实际拉取的保持一致,若需要VNC功能则同步拉取对应镜像:

"opera": {
    "default": "99.0",
    "versions": {
        "99.0": {
            "image": "selenoid/opera:99.0",  # 与本地拉取的镜像名称完全匹配
            "port": "4444",
            "path": "/"
        }
    }
}

若需VNC支持,先执行docker pull selenoid/vnc_opera:99.0,再将上述image字段改为selenoid/vnc_opera:99.0。

3. 重启Selenoid服务

修改browser.json后必须重启服务才能生效:

# 若用systemd管理Selenoid
sudo systemctl restart selenoid

若直接用Docker运行Selenoid,停止并重新启动容器即可。

4. 验证镜像与版本匹配

执行以下命令检查本地镜像,确保配置版本存在:

docker images | grep opera

额外检查点

  • 访问http://{selenoid_host}:4444/status确认Selenoid已正确加载Opera版本配置。
  • 确保Selenium版本与OperaDriver版本兼容,建议使用与目标Opera版本匹配的Selenium版本。

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:43:15