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

Python Selenium 4.12.0加载Edge用户数据时崩溃问题求助

解决Selenium 4.12.0加载Edge用户数据崩溃的问题

问题分析

报错DevToolsActivePort file doesn't exist的核心原因:

  • 默认的User Data根目录被正在运行的Edge实例占用,导致Selenium无法获取目录控制权
  • Selenium 4.x对Chromium系浏览器的用户数据目录加载逻辑有调整,直接使用根目录会触发进程冲突

修复方案

1. 指定具体的用户配置子目录

不要直接指向User Data根目录,而是指向其中的具体配置文件夹(比如默认的Default,或自定义配置文件夹):

import os
from selenium import webdriver
from time import sleep

option = webdriver.EdgeOptions()
# 指向Default子目录而非User Data根目录
user_data_path = f"C:\\Users\\{os.environ.get('username')}\\AppData\\Local\\Microsoft\\Edge\\User Data\\Default"
option.add_argument(f"user-data-dir={user_data_path}")

browser = webdriver.Edge(options=option)
browser.get("https://web.whatsapp.com")
sleep(100)
browser.quit()

2. 添加额外参数规避端口/权限冲突

如果指定子目录后仍报错,添加以下参数强制指定调试端口并禁用沙箱(部分环境需要):

option = webdriver.EdgeOptions()
user_data_path = f"C:\\Users\\{os.environ.get('username')}\\AppData\\Local\\Microsoft\\Edge\\User Data\\Default"
option.add_argument(f"user-data-dir={user_data_path}")
# 添加端口与权限相关参数
option.add_argument("--remote-debugging-port=9222")
option.add_argument("--no-sandbox")
option.add_argument("--disable-dev-shm-usage")

browser = webdriver.Edge(options=option)

3. 清理Edge后台进程

启动脚本前,关闭所有Edge窗口,通过任务管理器结束后台运行的msedge.exe进程,避免用户数据目录被占用。

关键说明

旧版Selenium允许直接使用User Data根目录,但Selenium 4.x配合新版EdgeDriver时,必须指向具体的用户配置子目录,否则会因进程冲突导致启动失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:32:31