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

Selenium启动Chrome时如何加载本地已安装的扩展程序?

Selenium启动Chrome时如何加载本地已安装的扩展程序?

嗨,这个问题我之前踩过坑!Selenium默认会拉起一个全新的Chrome临时配置环境,完全独立于你平时用的浏览器,所以本地已经装的扩展自然不会出现在这个窗口里。要解决这个问题,核心思路就是让Selenium复用你日常使用的Chrome用户配置文件,这样所有已安装的扩展、书签甚至浏览器设置都会一并加载进来。

下面给你一步步讲怎么操作:

第一步:找到你的Chrome用户配置文件路径

不同操作系统的默认路径不一样,你可以照着找:

  • Windows系统:C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data\Default
    (把<你的用户名>替换成你电脑上的实际用户名,比如我自己的就是C:\Users\John\AppData\Local\Google\Chrome\User Data\Default)
  • Mac系统:~/Library/Application Support/Google/Chrome/Default
  • Linux系统:~/.config/google-chrome/Default

第二步:修改你的Selenium代码

在启动Chrome的时候,通过ChromeOptions来指定用户数据目录。把你的原代码改成下面这样就行:

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

# 初始化Chrome选项对象
chrome_options = Options()
# 替换成你自己找到的Chrome用户数据目录路径(注意这里的r是为了让Python不转义反斜杠)
chrome_options.add_argument(r"user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data")

# 用配置好的选项启动Chrome
driver = webdriver.Chrome(options=chrome_options)
driver.get('http://website.com')

# 后面的登录逻辑保持不变
email_input = driver.find_element_by_css_selector('input#email')
email_input.send_keys('mail@gmail.com')

password_input = driver.find_element_by_css_selector('input#password')
password_input.send_keys('Password')

几个关键注意事项

  • 启动Selenium之前,一定要确保你本地的Chrome浏览器是完全关闭的!因为同一个用户配置文件不能同时被两个Chrome实例占用,否则会弹出“Chrome正在运行”的错误提示。
  • 如果你担心影响日常使用的浏览器数据,也可以自己创建一个独立的Chrome配置文件:打开Chrome时用chrome.exe --profile-directory=MyTestProfile命令,会自动生成一个新的配置文件,之后把代码里的路径改成User Data/MyTestProfile就行,这样测试和日常使用互不干扰。
  • 路径里的空格不用特意处理,只要用r前缀转义反斜杠,或者把反斜杠换成正斜杠(比如C:/Users/你的用户名/AppData/Local/Google/Chrome/User Data)都可以。

如果只需要加载某一个特定的扩展,而不是所有已安装的,也可以通过扩展的CRX文件路径来单独加载,但你要的是全部本地扩展,所以复用用户配置文件的方法最直接高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 15:13:03