playwright 1.33.0
Playwright v1.33 & v1.34 updates
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: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 newEmail.click(); -
Use new options
hasNotandhasNotTextinlocator.filter()to find elements that do not match certain conditions.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 thelocatorAssertions.toBeVisible()that ensures that element is both attached & visible.
New APIs
locator.or()- New option
hasNotinlocator.filter() - New option
hasNotTextinlocator.filter() locatorAssertions.toBeAttached()- New option
timeoutinroute.fetch() reporter.onExit()
⚠️ Breaking change
- The
mcr.microsoft.com/playwright:v1.33.0now serves a Playwright image based on Ubuntu Jammy. To use the focal-based image, please usemcr.microsoft.com/playwright:v1.33.0-focalinstead.
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