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

Selenium非无头模式下使用默认Chrome配置文件运行报错排查

问题原因与解决方法

核心原因

你遇到的DevToolsActivePort file doesn't exist错误,本质是当前已有Chrome实例在占用你指定的Default配置文件。Chrome的用户数据目录(包括配置文件)是排他性的,不允许多个Chrome进程同时使用同一配置,因此Chromedriver启动的Chrome进程会被强制终止,进而触发该报错。

另外你尝试直接将--user-data-dir指向Default子文件夹的写法是错误的:--user-data-dir需要指向整个用户数据根目录(即C:\Users\pcped\AppData\Local\Google\Chrome\User Data),具体的配置文件夹由--profile-directory参数指定。

解决步骤

1. 释放被占用的配置文件

关闭所有正在运行的Chrome窗口,包括后台隐藏的chrome.exe进程(通过任务管理器结束所有相关进程),确保Default配置文件没有被占用后,重新运行你的代码。

2. 使用独立测试配置文件(推荐)

如果不想关闭日常使用的Chrome,可以复制原Default配置文件夹作为独立测试用,避免冲突:

chrome_options = Options()
# 复制原Default文件夹到新路径,例如TestProfile
chrome_options.add_argument("--user-data-dir=C:\\Users\\pcped\\AppData\\Local\\Google\\Chrome\\Test User Data")
chrome_options.add_argument('--profile-directory=TestProfile')
chrome_options.add_argument("--disable-dev-shm-usage")

driver = webdriver.Chrome(options=chrome_options)

3. 修复无头模式加载配置的问题

无头模式下无法获取登录凭据,是因为旧版无头模式行为和正常Chrome差异较大。可以使用Chrome 112+支持的新无头模式,同时确保配置文件未被占用:

chrome_options = Options()
chrome_options.add_argument("--headless=new")  # 新无头模式,更接近正常Chrome行为
chrome_options.add_argument("--user-data-dir=C:\\Users\\pcped\\AppData\\Local\\Google\\Chrome\\User Data")
chrome_options.add_argument('--profile-directory=Default')
chrome_options.add_argument("--disable-dev-shm-usage")

driver = webdriver.Chrome(options=chrome_options)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:05:16