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

Python Selenium Edge无头模式与用户数据目录共存启动崩溃求助

Edge WebDriver同时启用用户数据目录与无头模式启动崩溃

问题现象

单独配置以下任一参数时,Python Selenium爬虫可正常运行:

edge_options.add_argument("--user-data-dir=C:\\Users\\xxx\\Desktop\\Edge_user_data")
edge_options.add_argument('--headless')

但同时启用两个参数时,浏览器启动直接崩溃。

报错信息

Traceback (most recent call last):
  File "C:\Users\xxx\Desktop\test17.py", line 3414, in <module>
    slower_process(urls, result_file_path)
  File "C:\Users\xxx\Desktop\test17.py", line 3338, in slower_process
    result = check_url(url)
             ^^^^^^^^^^^^^^
  File "C:\Users\xxx\Desktop\test17.py", line 42, in check_url
    result = 123_check(url, username)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxx\Desktop\test17.py", line 534, in 123_check
    driver = initialize_driver5()
             ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxx\Desktop\test17.py", line 321, in initialize_driver5
    driver = webdriver.Edge(options=edge_options, service=service)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\edge\webdriver.py", line 45, in __init__
    super().__init__(
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 56, in __init__
    super().__init__(
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 206, in __init__
    self.start_session(capabilities)
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 290, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 345, in execute
    self.error_handler.check_response(response)
  File "C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: msedge failed to start: crashed.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from msedge location C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe is no longer running, so msedgedriver is assuming that msedge has crashed.)
Stacktrace:
        GetHandleVerifier [0x00007FF74D583DB2+61490]
        Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF74D516002+740642]
        (No symbol) [0x00007FF74D2EB8AE]
        (No symbol) [0x00007FF74D31CBFE]
        (No symbol) [0x00007FF74D317F13]
        (No symbol) [0x00007FF74D35B7F8]
        (No symbol) [0x00007FF74D3536E3]
        (No symbol) [0x00007FF74D325EAA]
        (No symbol) [0x00007FF74D32518B]
        (No symbol) [0x00007FF74D326634]
        Microsoft::Applications::Events::ILogManager::DispatchEventBroadcast [0x00007FF74D748D69+1207369]
        (No symbol) [0x00007FF74D3A5304]
        Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF74D4690F1+32273]
        Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF74D4619E9+1801]
        Microsoft::Applications::Events::ILogManager::DispatchEventBroadcast [0x00007FF74D747944+1202212]
        Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF74D51E998+19784]
        Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF74D51AE54+4612]
        Microsoft::Applications::Events::ILogConfiguration::operator* [0x00007FF74D51AF86+4918]
        Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF74D50F451+713073]
        BaseThreadInitThunk [0x00007FF87E917614+20]
        RtlUserThreadStart [0x00007FF87FD226B1+33]

当前Driver初始化代码

def initialize_driver5(): # Microsoft Edge    
    # Define Edge options
    edge_options = webdriver.EdgeOptions()

    edgepath = "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"
    edge_options.setBinary = edgepath
    service = webdriver.EdgeService(service_args=['--log-level=SEVERE', '--disable-build-check'])

    # Using the user profile
    edge_options.add_argument("--user-data-dir=C:\\Users\\xxx\\Desktop\\Edge_user_data")

    # Options
    logger = logging.getLogger()
    logger.setLevel(logging.CRITICAL) 
    #logging.basicConfig(level=logging.WARNING)
    edge_options.add_argument('--remote-debugging-port=0')
    edge_options.add_argument('--no-first-run')
    edge_options.add_argument('--no-default-browser-check')

    edge_options.add_argument('--headless')
    edge_options.add_argument('--log-level=3')
    edge_options.add_argument("--disable-logging")
    edge_options.add_argument('--start-maximized') 
    edge_options.add_argument('--disable-infobars') 
    edge_options.add_experimental_option('excludeSwitches', ['disable-popup-blocking'])

    driver = webdriver.Edge(options=edge_options, service=service)
    
    return driver

已尝试的解决方案

  • 赋予Microsoft Edge权限
  • 重置Microsoft Edge浏览器
  • 复制用户配置文件夹
  • 删除并重新创建用户配置文件夹
  • 删除并重新下载msedgedriver
  • 指定可执行文件路径
  • 设置--remote-debugging-port=0等建议参数
  • 关闭后台所有Edge进程
  • 重置电脑

有效解决方案建议

  1. 改用新版无头模式参数:将--headless替换为--headless=new,新版无头模式优化了与用户配置目录的兼容性,避免老版本的隔离机制冲突。
  2. 指定具体用户配置文件夹:在--user-data-dir后添加--profile-directory=Default(替换为实际的配置文件夹名称,比如Profile 1),确保无头模式能精准加载指定配置,而非尝试创建新配置引发冲突。
  3. 修复二进制路径设置:当前代码中edge_options.setBinary = edgepath写法错误,正确应为edge_options.binary_location = edgepath,错误设置可能导致浏览器启动路径异常,叠加参数后触发崩溃。
  4. 移除无效冲突参数:删除--start-maximized(无头模式下该参数无效),将--remote-debugging-port=0改为固定端口如--remote-debugging-port=9222,避免端口分配问题。
  5. 清理配置文件夹锁定文件:手动打开Edge_user_data目录,删除SingletonLock、SingletonSocket等锁定文件,消除后台进程残留的锁定影响。

修改后的初始化代码示例:

def initialize_driver5(): # Microsoft Edge    
    edge_options = webdriver.EdgeOptions()

    # 正确设置二进制路径
    edge_options.binary_location = "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"
    service = webdriver.EdgeService(service_args=['--log-level=SEVERE', '--disable-build-check'])

    # 指定用户数据目录和具体配置文件
    edge_options.add_argument("--user-data-dir=C:\\Users\\xxx\\Desktop\\Edge_user_data")
    edge_options.add_argument("--profile-directory=Default") # 替换为实际的配置文件夹名

    logger = logging.getLogger()
    logger.setLevel(logging.CRITICAL) 

    edge_options.add_argument('--no-first-run')
    edge_options.add_argument('--no-default-browser-check')
    # 使用新版无头模式
    edge_options.add_argument('--headless=new')
    edge_options.add_argument('--log-level=3')
    edge_options.add_argument("--disable-logging")
    edge_options.add_argument('--disable-infobars') 
    edge_options.add_experimental_option('excludeSwitches', ['disable-popup-blocking'])
    # 指定固定调试端口
    edge_options.add_argument('--remote-debugging-port=9222')

    driver = webdriver.Edge(options=edge_options, service=service)
    
    return driver

内容的提问来源于stack exchange,提问作者themightyduckman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:40:55