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

如何为selenium.webdriver.Remote配置代理?出现SessionNotCreatedException如何解决

问题原因

  • Selenium版本兼容问题:Selenium 3.141+尤其是Selenium 4以后,直接修改全局DesiredCapabilities.FIREFOX的写法已经被废弃,远端Grid节点识别参数时会出现异常,导致会话创建失败。
  • 代理参数配置错误:noProxy字段不能设为None,Firefox无法解析该值,应该传入空字符串或者不需要走代理的域名/IP列表;同时proxyType推荐使用官方枚举类ProxyType.MANUAL而不是手动写字符串,避免不同版本的参数映射异常。
  • 代理可用性问题:如果你的代理需要用户名密码认证,当前的配置方式完全不生效,Firefox不支持直接在代理地址中携带认证信息,没有配置对应认证规则的情况下会触发会话创建失败。
  • 节点版本不匹配:本地Selenium版本、远端Grid节点的geckodriver版本、Firefox浏览器版本三者存在兼容冲突时,哪怕代理配置正确也会抛出该异常。

修正后的代码示例

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.proxy import Proxy, ProxyType

proxy_addr = '***.***.***.***:****'

# 配置代理
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = proxy_addr
proxy.ssl_proxy = proxy_addr
proxy.ftp_proxy = proxy_addr
proxy.no_proxy = ''

# 配置Firefox参数
options = Options()
options.add_argument("--disable-gpu")
# 将代理配置添加到options中
proxy.add_to_options(options)

# 初始化Remote驱动
driver = webdriver.Remote(
    command_executor='http://***.***.***.***:****/wd/hub',
    options=options
)

补充排查步骤

如果修改后还是报错,按以下顺序排查:

  1. 先去掉代理配置,直接启动Remote驱动,确认是否能正常创建会话,排除版本不兼容、节点不可用的问题
  2. 确认代理地址可以正常访问,没有IP白名单限制,不需要认证(如果需要认证要额外配置Firefox的偏好设置写入用户名密码,或者使用代理客户端做本地转发去掉认证)
  3. 查看远端Grid节点的运行日志,定位具体的会话创建失败原因,日志里会给出比本地更详细的报错信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:54:04