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

使用Selenium启动Edge默认配置文件时遇DevToolsActivePort不存在错误

解决Edge Selenium驱动的DevToolsActivePort错误

核心问题分析

你的问题大概率是现有Edge进程占用了指定的用户数据目录,或者Edge与驱动版本不匹配,导致Selenium无法创建新会话。以下是针对性的修复方案:


修复方案

1. 彻底关闭所有Edge相关进程

打开任务管理器,结束所有msedge.exe和msedgedriver.exe进程,再重新运行代码。直接使用默认User Data目录时,若已有Edge实例在运行,会导致锁冲突,引发启动失败。

2. 复制独立的用户数据目录用于自动化

不要直接使用日常使用的User Data目录,复制一份到新路径(比如C:\\Users\\bruno\\AppData\\Local\\Microsoft\\Edge\\Automation User Data\\),修改代码中的--user-data-dir参数指向这个新目录,避免和正常Edge实例冲突。

3. 严格匹配Edge与驱动版本

  • 打开Edge,通过edge://settings/help查看当前版本号(例如119.0.2151.58)
  • 下载与Edge版本完全一致的msedgedriver,确保32位/64位与Edge对应,替换现有驱动文件,或把驱动路径加入系统PATH。

4. 调整启动参数组合

修改参数配置,避免冲突:

import { Builder } from 'selenium-webdriver'
import edge from 'selenium-webdriver/edge'

export async function getBrowserDriver() {
  const browser = 'MicrosoftEdge'

  const edgeOptions = new edge.Options()
  // 使用独立的自动化用户数据目录
  edgeOptions.addArguments(`--user-data-dir=C:\\Users\\bruno\\AppData\\Local\\Microsoft\\Edge\\Automation User Data\\`)
  // 指定专属自动化配置文件
  edgeOptions.addArguments('--profile-directory=AutomationProfile')
  edgeOptions.addArguments('--disable-dev-shm-usage')
  edgeOptions.addArguments('--no-sandbox')
  // 固定调试端口,避免端口冲突
  edgeOptions.addArguments('--remote-debugging-port=9222')
  edgeOptions.addArguments('--start-maximized')

  return new Builder()
    .forBrowser(browser)
    .setEdgeOptions(edgeOptions)
    .build()
}

5. 检查权限与运行方式

右键点击你的IDE或命令行窗口,选择以管理员身份运行,确保Node.js进程有访问用户数据目录的权限。


手动启动驱动的正确流程

如果需要手动启动msedgedriver:

  1. 关闭所有Edge进程
  2. 打开命令行,进入msedgedriver所在目录,执行:msedgedriver.exe --port=9515
  3. 保持驱动进程运行,再执行你的Node.js代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:17:07