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

使用Playwright测试微软Edge时抛出“Browser closed”异常求助

问题原因

日志里的Opening in existing browser session是关键——当你通过Channel指定本地Edge时,Playwright尝试启动的自动化浏览器实例被系统引导复用了已有的用户会话,而Playwright的自动化模式需要独立、干净的浏览器环境,无法接管已运行的用户会话,因此直接导致浏览器进程退出,抛出Browser closed异常。

解决方案
  • 关闭所有Edge相关进程(包括后台驻留的)
    打开任务管理器,结束所有msedge.exe进程,确保没有残留的Edge会话,再重新运行测试。这是最快速的临时解决方法。

  • 配置独立的用户数据目录
    在BrowserTypeLaunchOptions中指定UserDataDir,让Playwright使用完全独立的浏览器配置文件,彻底避免和现有用户会话冲突:

    [TestMethod]
    public async Task LoadPlaywrightPage()
    {
        var playwright = await Playwright.CreateAsync();
        var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions
        {
            Headless = false,
            Channel = "msedge",
            // 指定自定义路径,确保该目录可读写,不存在会自动创建
            UserDataDir = @"C:\Temp\Playwright_Edge_Profile"
        });
        var context = await browser.NewContextAsync();
        var page = await context.NewPageAsync();
        await page.GotoAsync("https://playwright.dev/dotnet/");
    
        Assert.IsTrue((await page.TitleAsync()).Contains("Playwright .NET"));
    
        // 测试结束后关闭浏览器(建议添加,避免残留进程)
        await browser.CloseAsync();
    }
    
  • 验证浏览器与Playwright版本兼容性
    Playwright 1.25.0对Edge的版本有兼容范围(通常对应Chromium 104-106版本),如果你的本地Edge版本过新或过旧,可能导致启动失败:

    1. 查看本地Edge版本(设置→关于Microsoft Edge)
    2. 如果版本不兼容,可以选择升级Playwright到对应版本,或者调整本地Edge版本到兼容范围。
  • 关闭Edge的“恢复上次会话”功能
    打开Edge的设置→启动时,选择“打开新标签页”,而非“继续上次会话”,避免浏览器启动时自动恢复现有会话导致冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:45:35