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

Selenium创建Chrome驱动配置代理时出现AttributeError的解决方法咨询

Selenium创建Chrome驱动配置代理时出现AttributeError的解决方法咨询

嗨,这个问题我之前也碰到过,原因是Selenium 4.x版本对代理配置的API做了重大调整——原来的Proxy.add_to_capabilities()方法被移除了,而且DesiredCapabilities也不再是推荐的配置方式啦。下面给你两种可行的解决方案,根据你的需求选就行:

方案一:直接用ChromeOptions配置基础代理(最简单)

如果你的需求只是设置统一的HTTP/HTTPS代理,直接通过Options添加启动参数是最直接的方式,代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
# 其他你需要的导入(比如等待、异常类)可以保留

HOSTNAME = "109.175.226.252"
PORT = "12345"

options = Options()
# 核心:添加代理服务器参数
options.add_argument(f'--proxy-server=http://{HOSTNAME}:{PORT}')

# 初始化Service(记得替换成你本地chromedriver的路径)
srv = Service('C:/path/to/your/chromedriver.exe')
# 初始化驱动,现在只需要传service和options就行
driver = webdriver.Chrome(service=srv, options=options)

方案二:用Proxy类配置复杂代理规则(适合进阶需求)

如果你需要更精细的代理设置——比如区分HTTP/HTTPS代理、绕过特定域名(如本地地址),可以用Proxy类生成配置字典,再通过Options的实验性选项传入:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.proxy import Proxy, ProxyType
# 其他必要导入保留

HOSTNAME = "109.175.226.252"
PORT = "12345"

prox = Proxy()
prox.proxy_type = ProxyType.MANUAL
prox.http_proxy = f"{HOSTNAME}:{PORT}"
prox.ssl_proxy = f"{HOSTNAME}:{PORT}"
# 示例:添加不需要走代理的地址(逗号分隔)
prox.no_proxy = "localhost,127.0.0.1,*.your-local-domain.com"

options = Options()
# 将Proxy对象转为字典,传入experimental_options
options.add_experimental_option('proxy', prox.to_dict())

srv = Service('C:/path/to/your/chromedriver.exe')
driver = webdriver.Chrome(service=srv, options=options)

额外提醒

  • 确保你的Selenium版本是4.x及以上,旧版本的API已经被废弃;
  • chromedriver的版本必须和你本地Chrome浏览器的版本匹配,不然可能出现兼容性问题;
  • 如果你的代理需要用户名密码验证,还需要额外添加对应的参数或者使用扩展来处理(不过你没提这个需求,暂时就不说啦)。

备注:内容来源于stack exchange,提问作者Rapid1898

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:08:03