Playwright - v1.23.0


Network Replay

Now you can record network traffic into a HAR file and re-use the data in your tests.

To record network into HAR file:

npx playwright open --save-har=github.har.zip https://github.com/microsoft

Alternatively, you can record HAR programmatically:

const context = await browser.newContext({
  recordHar: { path: 'github.har.zip' }
});
// ... do stuff ...
await context.close();

Use the new methods page.routeFromHAR() or browserContext.routeFromHAR() to serve matching responses from the HAR file:

await context.routeFromHAR('github.har.zip');

Read more in our documentation.

Advanced Routing

You can now use route.fallback() to defer routing to other handlers.

Consider the following example:

// Remove a header from all requests.
test.beforeEach(async ({ page }) => {
  await page.route('**/*', route => {
    const headers = route.request().headers();
    delete headers['if-none-match'];
    route.fallback({ headers });
  });
});

test('should work', async ({ page }) => {
  await page.route('**/*', route => {
    if (route.request().resourceType() === 'image')
      route.abort();
    else
      route.fallback();
  });
});

Note that the new methods page.routeFromHAR() and browserContext.routeFromHAR() also participate in routing and could be deferred to.

Web-First Assertions Update

Component Tests Update

Read more about component testing with Playwright.

Miscellaneous

  • If there's a service worker that's in your way, you can now easily disable it with a new context option serviceWorkers:
    ts // playwright.config.ts export default { use: { serviceWorkers: 'block', } }
  • Using .zip path for recordHar context option automatically zips the resulting HAR:
    ts const context = await browser.newContext({ recordHar: { path: 'github.har.zip', } });
  • If you intend to edit HAR by hand, consider using the "minimal" HAR recording mode
    that only records information that is essential for replaying:
    ts const context = await browser.newContext({ recordHar: { path: 'github.har.zip', mode: 'minimal', } });
  • Playwright now runs on Ubuntu 22 amd64 and Ubuntu 22 arm64. We also publish new docker image mcr.microsoft.com/playwright:v1.23.0-focal.

⚠️ Breaking Changes ⚠️

WebServer is now considered "ready" if request to the specified port has any of the following HTTP status codes:

  • 200-299
  • 300-399 (new)
  • 400, 401, 402, 403 (new)

Details

date
June 27, 2022, 8:42 p.m.
name
v1.23.0
type
Minor
👇
Register or login to:
  • 🔍View and search all Playwright releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google
or