如何通过Selenium启动非隐私模式的Chrome浏览器
问题解答
Selenium控制Chrome时需要反复登录账号,本质是默认启动逻辑会生成临时独立的浏览器用户配置文件,所有登录态、Cookie、本地存储数据都会在浏览器进程退出后自动清除,并非主动开启了隐私模式,通过指定固定的本地用户配置目录即可彻底解决该问题,具体操作如下:
操作步骤
- 确认本地Chrome用户数据目录路径,不同操作系统的默认路径为:
- Windows:
C:\Users\<你的本机用户名>\AppData\Local\Google\Chrome\User Data - MacOS:
~/Library/Application Support/Google/Chrome - Linux:
~/.config/google-chrome
- Windows:
- 启动脚本前关闭所有正在运行的Chrome进程,避免配置目录被占用导致启动报错。
- 通过
ChromeOptions添加启动参数,指定固定的用户数据目录和要加载的配置文件夹(日常默认使用的配置文件夹名为Default,如果创建过多用户身份,对应文件夹名为Profile 1、Profile 2,按需替换即可)。
代码示例(Python版本)
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_opt = Options() # 替换为你本地的Chrome用户数据目录实际路径 chrome_opt.add_argument('--user-data-dir=C:\\Users\\your_username\\AppData\\Local\\Google\\Chrome\\User Data') # 指定加载默认配置文件 chrome_opt.add_argument('--profile-directory=Default') driver = webdriver.Chrome(options=chrome_opt) # 后续正常执行测试逻辑即可,已保存的登录态会自动加载 driver.get('https://test.example.com')
注意事项
- 跑脚本的时候别手动开Chrome占用同一个配置文件夹,不然会因为文件被锁直接启动报错
- 怕脚本操作搞乱你平时用的浏览器配置,就把整个User Data文件夹复制一份存到专门的测试目录,脚本指向这个复制出来的目录就行,既能留着登录态不用反复登,也不会影响你平时刷网页的配置
- 只要指定了固定的配置目录,Selenium拉起来的Chrome和你手动点开的没区别,之前存的账号、书签、装的插件都会自动加载,不用额外折腾
内容的提问来源于stack exchange,提问作者Alston
相关产品推荐
相关产品推荐

