如何在同一文件编写多个Playwright测试后关闭浏览器上下文
实现方法
要在第二个测试打印“Hello World 2”后关闭浏览器,你可以按以下方式修改代码:
核心思路
- 全局存储浏览器实例的引用,让第二个测试能访问到它
- 配置测试串行执行,避免第二个测试先于第一个执行导致浏览器实例未定义
- 在第二个测试打印完成后,手动调用浏览器的
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
相关产品推荐
相关产品推荐

