Playwright - v1.33.0

Locators Update

  • Use [locator.or()] to create a locator that matches either of the two locators.
    Consider a scenario where you'd like to click on a "New email" button, but sometimes a security settings dialog shows up instead.
    In this case, you can wait for either a "New email" button, or a dialog and act accordingly:

    js const newEmail = page.getByRole('button', { name: 'New' }); const dialog = page.getByText('Confirm security settings'); await expect(newEmail.or(dialog)).toBeVisible(); if (await dialog.isVisible()) await page.getByRole('button', { name: 'Dismiss' }).click(); await; * Use new options hasNot and hasNotText in [locator.filter()]
    to find elements that do not match certain conditions.

    js const rowLocator = page.locator('tr'); await rowLocator .filter({ hasNotText: 'text in column 1' }) .filter({ hasNot: page.getByRole('button', { name: 'column 2 button' }) }) .screenshot(); * Use new web-first assertion [locatorAssertions.toBeAttached()] to ensure that the element
    is present in the page's DOM. Do not confuse with the [locatorAssertions.toBeVisible()] that ensures that
    element is both attached & visible.

New APIs

  • [locator.or()]
  • New option hasNot in [locator.filter()]
  • New option hasNotText in [locator.filter()]
  • [locatorAssertions.toBeAttached()]
  • New option timeout in [route.fetch()]
  • [reporter.onExit()]

⚠️ Breaking change

  • The now serves a Playwright image based on Ubuntu Jammy.
    To use the focal-based image, please use instead.

Browser Versions

  • Chromium 113.0.5672.53
  • Mozilla Firefox 112.0
  • WebKit 16.4

This version was also tested against the following stable channels:

  • Google Chrome 112
  • Microsoft Edge 112


April 27, 2023, 1:36 a.m.
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