报错解决:Selenium报错“Message: session not created: probably user data directory is already in use” 等

简介: 本文详解Selenium操作Edge浏览器时常见的“版本不匹配”和“进程冲突”问题,分析报错根源,并提供手动替换驱动与webdriver-manager自动管理两种解决方案,助你高效稳定实现浏览器自动化。
# 前言
在使用Selenium自动化操作Microsoft Edge浏览器时,「**版本不匹配**」或者「**浏览器进程已存在**」是最常见的报错之一。本文以实际场景为例,详细拆解两个可能的报错原因,并提供「**手动适配驱动**」和「**自动管理驱动**」两种解决方案,帮你彻底解决这类问题。 正常来说这样的报错界面会显示如下:
![1.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_7ed39753084d4f18813f00261b86db06.png)

# 一、问题背景:报错现象与根源
## 1. 报错信息还原
运行Selenium自动化脚本时,出现如下核心报错:

程序执行异常:Message: session not created: This version of Microsoft Edge WebDriver only supports Microsoft Edge version 141
Current browser version is 143.0.3650.75 with binary path C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe


## 2. 两个报错根源分析
### 原因一:已存在浏览器进程
在运行程序的时候,电脑本身已经开着Edge浏览器或者别的浏览器(或者有可能关闭界面但是进程并没有完全清理干净)
### 原因二:驱动与Edge版本不一致(高概率)
Selenium的核心规则:**Edge WebDriver(msedgedriver.exe)版本必须与本地Edge浏览器版本完全一致(主版本号需严格匹配)**。
- 本地Edge浏览器版本:143.0.3650.75(主版本号143);
- 已安装的EdgeDriver版本:仅支持141版本;
- 版本不匹配导致浏览器与驱动无法建立会话,最终触发报错。

**补充:Edge浏览器会自动更新,而手动下载的驱动不会同步更新,这是版本不匹配的主要诱因。**

# 二、解决方案(分两种原因分别解决,建议都试试)
## 原因一 解决方案
**在任务管理器中彻底关闭浏览器进程**

**1、打开任务管理器**
![2.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_15c3ccfafcc74c3293797890fb68c080.png)

**2、寻找浏览器相关的进程 并全部右键之后点击关闭(所有浏览器)**
![3.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_a200def892b7487fb9c58b5b2827b3a2.png)


**3、重新运行程序,可以多试几遍,如果是这个原因的话这样就可以解决**


## 原因二 解决方案:
### 方案一:手动下载匹配版本的EdgeDriver

**适合场景:1、快速解决问题  2、需精准控制驱动版本、无网络自动下载权限的环境。**

**步骤1:确认本地Edge浏览器完整版本**
**1. 打开Edge浏览器,点击右上角「···」(设置);**
![4.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_b262d805d7984d1fb1ae3cdae65e8dc2.png)

**2. 在界面中点击「关于Microsoft Edge」;**
![5.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_2adee76c412b44adb6433c97dde85015.png)

**3. 记录完整版本号(示例:143.0.3650.75,核心关注「143」主版本号)。**

![6.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_0cbe37b557ab46ca9515b41a248c0119.png)

**步骤2:下载对应版本的EdgeDriver**
1. 访问EdgeDriver官方下载地址:[https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/);
2. 找到与浏览器主版本匹配的驱动(如「143.x.x.x」系列);
![7.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_93092475a6ff4771a4a653c1c6e51747.png)

**3. 根据系统类型选择(博主的电脑为Windows 64位),下载压缩包;**

![8.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_c6353a2ffebb46f0a76149eeb3a71e19.png)

**5. 解压压缩包,得到`msedgedriver.exe`可执行文件**。

![9.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_dda4fa3eb81743ce84b76699009ac600.png)

**步骤3:替换旧驱动并验证**

**1. 找到脚本中指定的驱动路径(示例:`E:\edge\msedgedriver.exe`);**
![10.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_537dbbc7d9b44bcd89e0f50ab943bfc4.png)

**2. 将新下载的`msedgedriver.exe`替换该路径下的旧文件;**
![11.png](https://ucc.alicdn.com/pic/developer-ecology/hbrqn5u25dfwa_b747e6f2cfea4c4082bcaa7de5f7b9cb.png)

**3. 重新运行自动化脚本,版本匹配后报错消失。**

### 三、解决方案二:用webdriver-manager自动管理驱动(推荐)
适合场景:追求效率、需长期维护的自动化脚本(无需手动适配版本)。
`webdriver-manager`是Python第三方库,可自动检测本地浏览器版本,下载匹配的驱动,彻底解决版本不匹配问题。

 **步骤1:安装依赖库**
打开命令行(CMD/PowerShell),执行安装命令:
```bash
pip install webdriver-manager

12.png

步骤2:修改自动化脚本(核心) 替换原有的浏览器初始化代码,新增自动驱动管理逻辑:**

原错误代码(手动指定驱动路径)

from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options

# 手动指定驱动路径(易导致版本不匹配)
DRIVER_PATH = r"E:\edge\msedgedriver.exe"
EDGE_PATH = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"

def init_browser(headless=True):
    edge_options = Options()
    edge_options.binary_location = EDGE_PATH
    # 其他浏览器配置...

    # 手动加载驱动(版本不匹配根源)
    service = Service(DRIVER_PATH)
    driver = webdriver.Edge(service=service, options=edge_options)
    return driver

修改后代码(自动匹配驱动)

from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options
# 新增:导入Edge驱动自动管理模块
from webdriver_manager.microsoft import EdgeChromiumDriverManager

EDGE_PATH = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"

def init_browser(headless=True):
    """初始化Edge浏览器(自动匹配驱动版本)"""
    # 1. 配置浏览器选项
    edge_options = Options()
    edge_options.binary_location = EDGE_PATH
    edge_options.add_argument("--start-maximized")  # 最大化窗口
    edge_options.add_argument("--disable-gpu")       # 禁用GPU加速
    edge_options.add_argument("--no-sandbox")        # 禁用沙箱模式
    # 反爬配置:隐藏自动化特征
    edge_options.add_argument("--disable-blink-features=AutomationControlled")
    edge_options.add_experimental_option("excludeSwitches", ["enable-automation"])
    edge_options.add_experimental_option('useAutomationExtension', False)
    # 无头模式(生产环境可用,调试时设为False)
    if headless:
        edge_options.add_argument("--headless=new")

    # 2. 核心修改:自动下载并加载匹配版本的驱动
    service = Service(EdgeChromiumDriverManager().install())
    driver = webdriver.Edge(service=service, options=edge_options)
    # 额外:隐藏webdriver标识,避免被网站检测
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")

    return driver

步骤3:删除手动驱动路径配置
删除脚本中手动指定的DRIVER_PATH变量(无需再维护驱动路径),重新运行脚本即可。

关键说明

  • 首次运行时,webdriver-manager会自动检测本地Edge版本,下载匹配的驱动到系统临时目录;
  • 后续Edge浏览器自动更新后,再次运行脚本会自动下载新的匹配驱动,无需手动干预。

四、避坑指南:常见问题补充

  1. 驱动下载失败:检查网络是否通畅,若访问官方源慢,可配置国内镜像(需修改webdriver-manager源码或使用代理);
  2. 用户数据目录报错:若脚本中配置了user-data-dir,需确保该路径存在且有读写权限,建议调试时暂时注释该配置;
  3. 无头模式异常:Edge 115+版本推荐使用--headless=new(旧版--headless已废弃);
  4. 权限问题:驱动下载路径若在C盘,需以管理员身份运行命令行/VS Code。
    ```
相关文章
|
5天前
|
云安全 监控 安全
|
2天前
|
存储 机器学习/深度学习 人工智能
打破硬件壁垒!煎饺App:强悍AI语音工具,为何是豆包AI手机平替?
直接上干货!3000 字以上长文,细节拉满,把核心功能、使用技巧和实测结论全给大家摆明白,读完你就知道这款 “安卓机通用 AI 语音工具"——煎饺App它为何能打破硬件壁垒?它接下来,咱们就深度拆解煎饺 App—— 先给大家扒清楚它的使用逻辑,附上“操作演示”和“🚀快速上手不踩坑 : 4 条核心操作干货(必看)”,跟着走零基础也能快速上手;后续再用真实实测数据,正面硬刚煎饺 App的语音助手口令效果——创建京东「牛奶自动下单神器」口令 ,从修改口令、识别准确率到场景实用性,逐一测试不掺水,最后,再和豆包 AI 手机语音助手的普通版——豆包App对比测试下,简单地谈谈煎饺App的能力边界在哪?
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1178 7
|
1天前
|
人工智能
自动化读取内容,不会写爆款的普通人也能产出好内容,附coze工作流
陌晨分享AI内容二创工作流,通过采集爆款文案、清洗文本、智能改写,实现高效批量生产。五步完成从选题到输出,助力内容创作者提升效率,适合多场景应用。
205 104
|
16天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
1182 41
|
3天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
338 13
|
16天前
|
人工智能 前端开发 算法
大厂CIO独家分享:AI如何重塑开发者未来十年
在 AI 时代,若你还在紧盯代码量、执着于全栈工程师的招聘,或者仅凭技术贡献率来评判价值,执着于业务提效的比例而忽略产研价值,你很可能已经被所谓的“常识”困住了脚步。
959 78
大厂CIO独家分享:AI如何重塑开发者未来十年
|
11天前
|
存储 自然语言处理 测试技术
一行代码,让 Elasticsearch 集群瞬间雪崩——5000W 数据压测下的性能避坑全攻略
本文深入剖析 Elasticsearch 中模糊查询的三大陷阱及性能优化方案。通过5000 万级数据量下做了高压测试,用真实数据复刻事故现场,助力开发者规避“查询雪崩”,为您的业务保驾护航。
572 32

热门文章

最新文章