报错解决: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。
    ```
相关文章
|
20天前
|
存储 文字识别 数据可视化
实用代码工具:Python打造PDF选区OCR / 截图批量处理工具(支持手动/全自动模式)
一款基于Python的PDF区域OCR与截图工具,支持精准框选、文字识别、图片截取及Excel一键导出。内置手动审核与全自动批量处理模式,结合PyMuPDF、easyocr等技术,实现高效、可视化的PDF数据提取,适用于发票、报表等场景,显著提升办公效率。
205 11
|
27天前
|
数据采集 算法 机器人
具身智能:零基础入门睿尔曼机械臂(五)—— 手眼标定核心原理与数学求解
本文系统讲解手眼标定技术,涵盖Eye-in-Hand与Eye-to-Hand两种架构,深入推导AX=XB方程的数学原理与求解方法,结合实际应用场景和操作步骤,为机器人视觉开发者提供从理论到实践的完整指南。
256 9
|
2月前
|
存储 人工智能 自然语言处理
AI 十大论文精讲(五):RAG——让大模型 “告别幻觉、实时更新” 的检索增强生成秘籍
本文解读AI十大核心论文之五——《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》。该论文提出RAG框架,通过“检索+生成”结合,解决大模型知识更新难、易幻觉、缺溯源等问题,实现小模型高效利用外部知识库,成为当前大模型落地的关键技术。
928 155
|
23天前
|
存储 数据采集 算法
具身智能:零基础入门睿尔曼机械臂(六)——手眼标定代码库详解,从原理到实践
本文详解睿尔曼手眼标定代码库,涵盖眼在手上与眼在手外两种模式的实现原理及核心代码解析。内容包括数据采集、位姿处理、相机标定与手眼矩阵求解全流程,结合OpenCV的Tsai算法实现高精度坐标转换,助力机器人视觉精准抓取应用开发。
|
1月前
|
存储 Linux 数据处理
实用程序:基于Python+Tkinter开发表格比对&整理工具
一款基于Python+Tkinter开发的免费开源Excel处理工具,支持表格差异比对与错乱行整理,完整保留图片,兼容.xlsx和.csv格式。操作简单,支持自定义比对列、多线程处理,解决日常办公中数据比对、行合并及图片丢失等痛点,适用于各类Excel数据清理场景。(239字)
159 12
|
10天前
|
机器学习/深度学习 算法 自动驾驶
基于YOLOv8模型的行人车辆多目标检测计数与跟踪系统
本研究基于YOLOv8模型,针对智能交通与公共安全需求,开展行人车辆多目标检测、计数与跟踪技术研究。通过融合YOLOv8高精度检测与DeepSORT稳定跟踪,实现复杂场景下目标的实时定位、统计与轨迹追踪,提升交通管理效率与公共安全保障能力,推动智慧城市发展。
|
1月前
|
数据采集 Web App开发 安全
爬虫专栏:破解网站检测selenium反爬——“当前环境正在被调试“”
本文记录了一次Selenium爬虫被Gitee安全验证拦截的排查经历。爬虫运行一周后突然失效,频繁触发“安全验证”弹窗,尝试隐藏webdriver特征、更换IP、模拟人工操作等均无效。最终发现:手动访问Gitee完成验证后,环境风险标记解除,爬虫自动恢复正常。表明反爬机制针对的是“访问环境”而非工具本身,人工验证可快速解锁,为同类问题提供简洁高效的解决思路。
|
1月前
|
人工智能 运维 监控
开源项目分享:Gitee热榜项目 2025年12月第二周 周榜
本文档汇总Gitee本周热门开源项目,涵盖Fay、JeeLowCode等明星项目,结合AI与低代码趋势,深入分析技术融合与场景创新,助力开发者把握前沿动态。
|
1月前
|
人工智能 运维 安全
SOC 2.0 来了:不是加人加班,而是加“智能”!——智能化安全运营中心的建设之道
SOC 2.0 来了:不是加人加班,而是加“智能”!——智能化安全运营中心的建设之道
190 15
|
2月前
|
消息中间件 存储 Kafka
流、表与“二元性”的幻象
本文探讨流与表的“二元性”本质,指出实现该特性需具备主键、变更日志语义和物化能力。强调Kafka与Iceberg因缺乏更新语义和主键支持,无法真正实现二元性,唯有统一系统如Flink、Paimon或Fluss才能无缝融合流与表。
262 7
流、表与“二元性”的幻象