如何在剧作家测试运行程序中使用 browserContext?

Pat*_*nny 5 playwright playwright-test

我正在使用 playwright 来测试 PWA(渐进式 Web 应用程序),并且我想测试离线行为。

browserContext 有一个setOffline方法。

当调用 playwright 作为库时,我可以browserContext这样设置:

// example.js
const playwright = require('playwright');

(async () => {
  const browser = await playwright.chromium.launch({
    channel: 'msedge',
  });
  const context = await browser.newContext();
  const page = await context.newPage();
  await page.goto('https://www.microsoft.com/edge');
  await context.setOffline(true);
  await page.screenshot({ path: 'example.png' });

  await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)

但对于我的 PWA,我使用的是捆绑的剧作家测试运行程序。

我已将测试运行器配置为使用 5 种设备:桌面 Chrome、Firefox 和 Webkit,以及移动 Webkit 和移动 Chrome。我想在测试中进入和退出所有模式的离线模式,以确认我的 PWA 的行为。

如何browserContext在测试运行器中设置?测试中似乎不可用。

小智 9

从未真正尝试过这个,但据我所知,只需将上下文实例放入异步函数中就可以了:

test('context', async({ page, context }) => {
    await page.goto('https://www.microsoft.com/edge');
    await context.setOffline(true);
    await page.screenshot({ path: 'example.png' });
});
Run Code Online (Sandbox Code Playgroud)