报错解决:Selenium报错“Message: session not created: probably user data directory is already in use” 等
详解Selenium控制Edge时“session not created”等报错:浏览器进程未关闭与WebDriver版本不匹配两大原因,提供手动更换msedgedriver与webdriver-manager自动匹配两种解决方案。
前言
在使用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
- 访问EdgeDriver官方下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/;
- 找到与浏览器主版本匹配的驱动(如「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 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浏览器自动更新后,再次运行脚本会自动下载新的匹配驱动,无需手动干预。
四、避坑指南:常见问题补充
- 驱动下载失败:检查网络是否通畅,若访问官方源慢,可配置国内镜像(需修改
webdriver-manager源码或使用代理); - 用户数据目录报错:若脚本中配置了
user-data-dir,需确保该路径存在且有读写权限,建议调试时暂时注释该配置; - 无头模式异常:Edge 115+版本推荐使用
--headless=new(旧版--headless已废弃); - 权限问题:驱动下载路径若在C盘,需以管理员身份运行命令行/VS Code。
報錯解決:Selenium報錯“Message: session not created: probably user data directory is already in use” 等
詳解Selenium控制Edge時「session not created」等報錯:瀏覽器進程未關閉與WebDriver版本不匹配兩大原因,提供手動更換msedgedriver與webdriver-manager自動匹配兩種方案。
來源:https://blog.csdn.net/2403_87969572/article/details/155866131
抓取時間(ISO本地):2026-05-18 05:17:17
前言
在使用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
- 訪問EdgeDriver官方下載地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/;
- 找到與瀏覽器主版本匹配的驅動(如「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 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瀏覽器自動更新後,再次運行腳本會自動下載新的匹配驅動,無需手動干預。
四、避坑指南:常見問題補充
- 驅動下載失敗:檢查網絡是否通暢,若訪問官方源慢,可配置國內鏡像(需修改
webdriver-manager源碼或使用代理); - 用戶數據目錄報錯:若腳本中配置了
user-data-dir,需確保該路徑存在且有讀寫權限,建議調試時暫時註釋該配置; - 無頭模式異常:Edge 115+版本推薦使用
--headless=new(舊版--headless已廢棄); - 權限問題:驅動下載路徑若在C盤,需以管理員身份運行命令行/VS Code。
Fix: Selenium “session not created: probably user data directory is already in use” (and related errors)
Fixes Selenium Edge “session not created” errors from zombie browser processes or WebDriver version mismatch, with manual driver replacement and webdriver-manager auto-matching.
Captured at (local ISO): 2026-05-18 05:17:17
Preface
When automating Microsoft Edge with Selenium, version mismatch or an existing browser process are the most common failures. This post covers both root causes and two fixes: manual driver matching and automatic driver management.

I. Symptoms and root causes
1. Typical error
程序执行异常: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. Two common causes
Cause 1: Browser already running
Edge (or another Chromium browser) may still be open—or the process was not fully killed after closing the window.
Cause 2: Driver vs Edge version mismatch (very common)
Edge WebDriver (msedgedriver.exe) must match the installed Edge major version.
- Local Edge: 143.0.3650.75 (major 143)
- Installed driver: only supports 141
- Mismatch → session cannot start
Edge auto-updates; a manually downloaded driver does not—this is the usual trigger.
II. Fixes (try both if unsure)
Fix for Cause 1
Kill all browser processes in Task Manager


Close every browser-related process, then rerun your script.
Fix for Cause 2
Option A: Download matching EdgeDriver manually
Best when you need a fixed driver version or have no auto-download access.
Step 1 — Read Edge version
- Edge → ··· → Settings

- About Microsoft Edge

- Note full version (e.g. 143.0.3650.75; major 143 matters)

Step 2 — Download driver
- https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- Pick the 143.x build

- Windows 64-bit ZIP

- Extract
msedgedriver.exe

Step 3 — Replace and test
- Path in your script (e.g.
E:\edge\msedgedriver.exe)

- Replace the old EXE

- Rerun—the error should disappear.
Option B: webdriver-manager (recommended)
Auto-detects Edge and downloads the matching driver.
Step 1 — Install
pip install webdriver-manager

Step 2 — Update script
Old (manual path):
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
New (auto 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
Step 3 — Remove DRIVER_PATH; rerun. First run downloads the driver; after Edge updates, the next run fetches a new match automatically.
IV. Extra tips
- Download fails — Check network; use a mirror or proxy for
webdriver-managerif the official host is slow. user-data-dir— Path must exist and be writable; comment out while debugging.- Headless — Edge 115+ use
--headless=new(legacy--headlessis deprecated). - Permissions — Run terminal/IDE as administrator if the driver cache is under
C:\.