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

调用WebDriver.Chrome时报错TypeError: options参数重复赋值

解决WebDriver初始化时options参数重复赋值的错误

错误原因

这个报错是因为Selenium 4.x及以上版本调整了webdriver.Chrome()的参数结构:第一个位置参数不再是驱动文件路径,而是options。你直接传入/usr/bin/chromedriver会被系统识别为options参数,同时又显式指定了options=chrome_options,导致同一个参数被重复赋值,触发TypeError。

解决方案

方案1:正确指定驱动路径(使用Service参数)

从Selenium 4开始,驱动路径需要通过Service对象传入,代码修改如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

# 通过Service类指定驱动文件路径
service = Service(r'/usr/bin/chromedriver')
browser = webdriver.Chrome(service=service, options=chrome_options)

方案2:省略手动指定路径(驱动已配置环境变量)

如果你的chromedriver已经在系统环境变量的PATH目录下,或者使用了Selenium自动驱动管理工具(如webdriver-manager),可以直接省略路径参数:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

# 系统会自动查找可用的chromedriver
browser = webdriver.Chrome(options=chrome_options)

注:如果仍在使用Selenium 3.x版本,你原来的写法是有效的,但建议升级到最新版本以适配后续浏览器更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:52:08