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

Selenium调用本地Chrome替代ChromeDriver加载扩展时service参数报错如何解决

问题排查与解决方案

一、当前报错修复

你遇到的TypeError: __init__() got an unexpected keyword argument 'service'报错是Selenium版本不匹配导致的:
Selenium 4.0及以上版本才支持service参数传入Service对象,你本地安装的是3.x及以下的旧版本,无法识别该参数,可从两种修复方案中选其一:

  • 方案1:升级Selenium到4.x版本
    执行pip命令完成升级,原有代码无需修改即可正常运行:
    pip install --upgrade selenium
    
  • 方案2:兼容旧版本Selenium,调整代码写法
    不使用Service对象,直接把驱动路径传入executable_path参数:
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_argument(r"--user-data-dir=C:\\Users\\czarn\\AppData\\Local\\Google\\Chrome\\User Data")
    chrome_options.add_argument(r'--profile-directory=Member')
    window = webdriver.Chrome(executable_path='D:\\chromedriver.exe', options=chrome_options)
    

二、Chrome用户配置复用注意事项

调整版本后如果仍加载配置失败,可检查以下几点:

  • 运行代码前必须完全关闭所有本地Chrome窗口,同一个Chrome用户配置目录同一时间只能被一个Chrome进程占用,被锁定后会导致Selenium加载失败。
  • 确认profile-directory参数值正确:在Chrome地址栏输入chrome://version/,查看「个人资料路径」字段,路径最后一段就是对应配置的目录名,比如路径为C:\Users\xxx\AppData\Local\Google\Chrome\User Data\Default时,配置目录名就是Default。
  • 确认Chrome浏览器版本和chromedriver版本完全匹配,大版本号必须一致,否则也会出现加载异常。

三、备选方案:打包已配置扩展直接加载

如果不想依赖本地Chrome配置,也可以把完成参数设置的扩展打包为crx文件,启动Selenium时直接加载,无需每次上传ZIP再修改配置:

  1. 打开Chrome扩展管理页面并开启开发者模式,找到已配置好的扩展,点击「打包扩展程序」生成crx文件。
  2. 启动Chrome时加载该crx即可:
chrome_options.add_extension('你的扩展文件路径.crx')

该方式不依赖本地用户配置,扩展的配置会一并打包在crx中,启动后可直接使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:57:04