Playwright v1.21.0stable Released Apr 12, 2022
Impact Score: 5/10

Playwright v1.21.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: playwright ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Playwright v1.21.0. Source highlight: Playwright v1.21 updates

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

๐Ÿ“„ View Raw Release Notes (Original Developer Log)
<a href="https://youtu.be/45HZdbmgEw8">![release 1.21](https://user-images.githubusercontent.com/883973/169663514-5f93834a-a0cc-49f8-be11-892010f89f09.jpg)</a> <a href="https://youtu.be/45HZdbmgEw8">Playwright v1.21 updates</a> ## Highlights - New **experimental** role selectors that allow selecting elements by their [ARIA role](https://www.w3.org/TR/wai-aria-1.2/#roles), [ARIA attributes](https://www.w3.org/TR/wai-aria-1.2/#aria-attributes) and [accessible name](https://w3c.github.io/accname/#dfn-accessible-name). ```js // Click a button with accessible name "log in" await page.click('role=button[name="log in"]') ``` To use role selectors, make sure to pass `PLAYWRIGHT_EXPERIMENTAL_FEATURES=1` environment variable: ```js // playwright.config.js process.env.PLAYWRIGHT_EXPERIMENTAL_FEATURES = '1'; module.exports = { /* ... */ }; ``` Read more in [our documentation](https://playwright.dev/docs/selectors#role-selector). - New `scale` option in [`Page.screenshot`](https://playwright.dev/docs/api/class-page#page-screenshot) for smaller sized screenshots. - New `caret` option in [`Page.screenshot`](https://playwright.dev/docs/api/class-page#page-screenshot) to control text caret. Defaults to `"hide"`. - New method `expect.poll` to wait for an arbitrary condition: ```js // Poll the method until it returns an expected result. await expect.poll(async () => { const response = await page.request.get('https://api.example.com'); return response.status(); }).toBe(200); ``` `expect.poll` supports most synchronous matchers, like `.toBe()`, `.toContain()`, etc. Read more in [our documentation](https://playwright.dev/docs/test-assertions#polling). ## Behavior Changes - ESM support when running TypeScript tests is now enabled by default. The `PLAYWRIGHT_EXPERIMENTAL_TS_ESM` env variable is no longer required. - The `mcr.microsoft.com/playwright` docker image no longer contains Python. Please use `mcr.microsoft.com/playwright/python` as a Playwright-ready docker image with pre-installed Python. - Playwright now supports large file uploads (100s of MBs) via [`Locator.setInputFiles`](https://playwright.dev/docs/api/class-locator#locator-set-input-files) API. ## Browser Versions - Chromium 101.0.4951.26 - Mozilla Firefox 98.0.2 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 100 - Microsoft Edge 100