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

使用Selenium自动化浏览时如何实现浏览器历史记录持久化

解决Edge浏览器Selenium会话历史记录持久化及临时Profile位置查询问题

一、实现历史记录持久化的正确配置

你之前的代码错误在于直接将user-data-dir指向了Default子目录,正确的做法是指定上层的User Data目录,并通过profile-directory参数指定具体的Profile(比如Default)。同时必须确保启动Selenium前没有手动打开的Edge浏览器进程,否则原Profile会被锁定,Selenium会自动复制到临时目录使用,导致修改无法同步到原Profile。

修正后的代码如下:

from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
from webdriver_manager.microsoft import EdgeChromiumDriverManager
import time
import os

# 关闭所有Edge进程(避免Profile被锁定)
os.system("taskkill /f /im msedge.exe")

edge_options = webdriver.EdgeOptions()
edge_options.use_chromium = True

# 指定用户数据根目录,而非具体Profile子目录
edge_options.add_argument(r"user-data-dir=C:\Users\abdul\AppData\Local\Microsoft\Edge\User Data")
# 指定要使用的目标Profile
edge_options.add_argument("profile-directory=Default")

driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()), options=edge_options)
driver.get("https://adobe.com")

time.sleep(10)
driver.quit()

关键注意事项:

  • 启动Selenium前必须关闭所有Edge实例,否则原Profile处于锁定状态,Selenium会创建临时副本,所有操作都不会同步到原Profile。
  • user-data-dir必须指向包含Profile目录的根路径(即User Data),profile-directory参数用来指定具体使用哪个Profile。

二、查询Selenium复制的临时Profile位置

如果Selenium因原Profile锁定而使用了临时目录,可以通过以下两种方式获取路径:

1. 通过Driver Capabilities获取

在代码中添加以下内容,Driver启动后即可打印临时Profile路径:

# 打印当前使用的Profile路径
print("当前Profile路径:", driver.capabilities['chrome']['userDataDir'])

2. 通过浏览器地址栏查看

在Selenium控制的Edge浏览器中,访问chrome://version,页面中的个人资料路径即为当前使用的Profile目录(临时目录路径通常包含Temp字样)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:38:09