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

新手编写图片解析器时如何修复Selenium Edge驱动session not created错误?

解决Edge浏览器驱动启动报错:用户数据目录已占用

报错原因

当前Edge默认的用户数据目录被其他Edge实例(比如手动打开的浏览器、未正常退出的驱动进程)占用,导致自动化驱动无法创建新会话。

解决方法

方法一:指定独立的自动化用户数据目录

给EdgeOptions添加--user-data-dir参数,指向一个全新的目录,让驱动使用专属配置文件,避免和日常使用的Edge冲突。代码修改如下:

# 在options的参数列表中添加这一行,路径可自定义
options.add_argument('--user-data-dir=C:/temp/edge_auto_profile')  # Windows示例
# Linux/macOS示例:options.add_argument('--user-data-dir=/tmp/edge_auto_profile')

方法二:清理残留的Edge进程

如果是之前的驱动进程未正常退出导致目录被占用,手动关闭所有Edge窗口,或者用命令强制结束进程:

  • Windows:打开任务管理器,结束所有「Microsoft Edge」进程,或执行命令:taskkill /F /IM msedge.exe
  • Linux:终端执行pkill msedge
  • macOS:终端执行killall "Microsoft Edge"

修改后的完整代码示例

def setup_browser():
    options = EdgeOptions()
    options.add_argument('--start-maximized')
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--disable-blink-features=AutomationControlled')
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    options.add_experimental_option('useAutomationExtension', False)
    options.add_argument('--disable-gpu')
    options.add_argument('--disable-software-rasterizer')
    # 添加独立用户数据目录
    options.add_argument('--user-data-dir=C:/temp/edge_auto_profile')
    try:
        driver_manager = EdgeChromiumDriverManager()
        driver_path = driver_manager.install()
        service = EdgeService(driver_path)
        driver = webdriver.Edge(service=service, options=options)
        logging.info(f"Edge driver installed: {driver_path}")
    except Exception as e:
        logging.error(f"Error driver installed: {str(e)}")
        raise e
    driver.execute_script(
        "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
    )
    return driver

内容的提问来源于stack exchange,提问作者Даниил Губанов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:27:43