当前位置: 首页 > news >正文

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

前言

在使用Selenium自动化操作Microsoft Edge浏览器时,「版本不匹配」或者「浏览器进程已存在」是最常见的报错之一。本文以实际场景为例,详细拆解两个可能的报错原因,并提供「手动适配驱动」和「自动管理驱动」两种解决方案,帮你彻底解决这类问题。 正常来说这样的报错界面会显示如下:
在这里插入图片描述

一、问题背景:报错现象与根源

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、寻找浏览器相关的进程 并全部右键之后点击关闭(所有浏览器)

在这里插入图片描述
3、重新运行程序,可以多试几遍,如果是这个原因的话这样就可以解决

原因二 解决方案:

方案一:手动下载匹配版本的EdgeDriver

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

步骤1:确认本地Edge浏览器完整版本
1. 打开Edge浏览器,点击右上角「···」(设置);
在这里插入图片描述

2. 在界面中点击「关于Microsoft Edge」;
在这里插入图片描述

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

在这里插入图片描述

步骤2:下载对应版本的EdgeDriver

  1. 访问EdgeDriver官方下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/;
  2. 找到与浏览器主版本匹配的驱动(如「143.x.x.x」系列);
    在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

1. 找到脚本中指定的驱动路径(示例:E:\edge\msedgedriver.exe);
在这里插入图片描述

2. 将新下载的msedgedriver.exe替换该路径下的旧文件;
在这里插入图片描述

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

三、解决方案二:用webdriver-manager自动管理驱动(推荐)

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

步骤1:安装依赖库
打开命令行(CMD/PowerShell),执行安装命令:

pip install webdriver-manager

在这里插入图片描述

步骤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 EdgeChromiumDriverManagerEDGE_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_PATHedge_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。
http://www.jsqmd.com/news/79987/

相关文章:

  • AI重构日常生活:从无感服务到智能生态的全面进化
  • 开源项目分享 : Gitee热榜项目 2025-12-13 日榜
  • SElinux策略文件配置
  • 数据分析与模型构建是实现精准营销的核心环节。基于通话记录、通讯录和短信内容,可以构建详细的用户画像
  • JAVA微服务与分布式(概念版)
  • 256K超长上下文+FP8量化突破:Qwen3-4B-Instruct-2507-FP8树立轻量级大模型新基准
  • LFM2-8B-A1B:83亿参数仅激活15亿,混合专家模型引领边缘智能终端革命
  • Liquid AI推出LFM2-1.2B-RAG模型:轻量级RAG专用AI助力企业知识管理升级
  • 代码智能新纪元:THUDM开源SWE-Dev-9B模型重塑软件开发全流程
  • 人工智能行业迎来技术突破:AI21-Jamba-Reasoning-3B模型引领轻量化推理新潮流
  • AI元人文构想:面向智能时代的伦理范式革命
  • 瑞士发布国家级开源大模型Apertus:AI公共基础设施的全球新范式
  • 阿里云Qwen2.5-Omni震撼发布:多模态交互新纪元全面开启
  • 开源多模态新突破:CogVLM2系列模型震撼发布,性能全面跃升且部署门槛大幅降低
  • Amazon Bedrock模型兼容性全景解析:API支持矩阵与调用策略指南
  • 【Python学习打卡-Day19】告别选择困难症:熵权法+TOPSIS科学评估你的机器学习模型
  • 基于 STM32 的数控 BUCK-BOOST 升降压电源设计
  • Qwen系列模型性能优化指南:官方推荐参数配置与开放下载渠道公布
  • Kimi-VL多模态模型技术突破:小参数实现大能力的范式革新
  • 突破行业壁垒:阶跃星辰开源全链路语音交互模型,重新定义智能语音交互标准
  • 图像编辑新突破:Qwen-Image-Edit-MeiTu模型实现专业级视觉优化与场景适配
  • Qwen3-VL-4B-Thinking-FP8震撼发布:多模态AI新纪元,量化模型性能不减的技术突破
  • Qwen3-VL-4B-Instruct-FP8震撼发布:多模态交互新纪元的技术突破
  • 腾讯混元大模型系列:引领多场景高效部署的开源新范式
  • 多语言文档解析新突破:dots.ocr以1.7B参数实现多任务SOTA性能
  • 重磅发布:Granite-4.0-H-Small-Unsloth-BNB-4bit模型开源,引领轻量级AI应用新纪元
  • 中国AI再创全球标杆:HiDream E1.1登顶国际图像编辑榜单,开源技术引领行业变革
  • Holo1.5:开启智能交互新纪元的计算机使用代理基础模型
  • OpenAI Whisper参数全解析:从入门到精通的语音转文本配置指南
  • FLUX.1 Kontext Dev:开源图像编辑领域的革命性突破