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

如何在同一文件编写多个Playwright测试后关闭浏览器上下文

实现方法

要在第二个测试打印“Hello World 2”后关闭浏览器,你可以按以下方式修改代码:

核心思路

  1. 全局存储浏览器实例的引用,让第二个测试能访问到它
  2. 配置测试串行执行,避免第二个测试先于第一个执行导致浏览器实例未定义
  3. 在第二个测试打印完成后,手动调用浏览器的close()方法

修改后的代码

import { test, Page, Browser } from "@playwright/test";
let page: Page;
let browser: Browser;

// 强制测试按顺序执行,保证第一个测试先完成并赋值浏览器实例
test.describe.configure({ mode: 'serial' });

test('First Test', async({ browser: browserInst })=>{
    browser = browserInst;
    page = await browser.newPage();
    console.log("Hello World");
    // 第一个测试完成后关闭当前页签,释放资源
    await page.close();
})

test('2nd Test', async()=>{
    console.log("Hello World 2");
    // 打印完成后立即关闭浏览器
    await browser.close();
})

补充说明

  • 加上test.describe.configure({ mode: 'serial' })是因为Playwright默认并行执行测试,不配置的话第二个测试可能在第一个测试完成前运行,导致browser变量未定义。
  • Playwright默认会在所有测试结束后自动清理浏览器实例,但这里手动调用close()是为了满足“打印后立即关闭”的要求。
  • 第一个测试里关闭page是常规优化,避免不必要的资源占用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:58:16