NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1235 most downloaded on npm
A high-level API to automate web browsers
Last release today
04 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
5694 releases · first in 2020
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
https://github.com/microsoft/playwright/issues/33802 - [Bug]: Codegen's Clear button doesn't work if not recording https://github.com/microsoft/playwr
https://github.com/microsoft/playwright/issues/33802 - [Bug]: Codegen's Clear button doesn't work if not recording https://github.com/microsoft/playwright/issues/33806 - [Bug]: playwright hangs while waiting for pending navigations https://github.com/microsoft/playwright/issues/33787 - [Bug]: VSC extension isn't capturing all entered text https://github.com/microsoft/playwright/issues/33788 - [Regression]: Double clicking the steps in trace viewer doesn't filter actions https://github.com/microsoft/playwright/issues/33772 - [Bug]: aria_snapshot generates invalid yaml when combined with an aria-label attribut https://github.com/microsoft/playwright/issues/33791 - [Bug]: text input with number value raises "container is not iterable" with to_match_aria_snapshot https://github.com/microsoft/playwright/issues/33644 - [Bug]: getByRole can't find element with the accessible name from label element when aria-labelledby is not valid https://github.com/microsoft/playwright/issues/33660 - [Regression]: Unable to open Playwright UI in Dark Mode
This version was also tested against the following stable channels:
Nothing published for this version
Nothing published for this version
New assertion expect(locator).toMatchAriaSnapshot() verifies page structure by comparing to an expected accessibility tree, represented as YAML.
New assertion expect(locator).toMatchAriaSnapshot() verifies page structure by comparing to an expected accessibility tree, represented as YAML.
await page.goto('https://playwright.dev');
await expect(page.locator('body')).toMatchAriaSnapshot(`
- banner:
- heading /Playwright enables reliable/ [level=1]
- link "Get started"
- link "Star microsoft/playwright on GitHub"
- main:
- img "Browsers (Chromium, Firefox, WebKit)"
- heading "Any browser • Any platform • One API"
`);
You can generate this assertion with Test Generator and update the expected snapshot with --update-snapshots command line flag.
Learn more in the aria snapshots guide.
tsconfig to be used for all tests.'on-first-failure' for testOptions.screenshot.Error.cause.chrome, msedge and similar switch to new headlessThis change affects you if you're using one of the following channels in your playwright.config.ts:
chrome, chrome-dev, chrome-beta, or chrome-canarymsedge, msedge-dev, msedge-beta, or msedge-canaryAfter updating to Playwright v1.49, run your test suite. If it still passes, you're good to go. If not, you will probably need to update your snapshots, and adapt some of your test code around PDF viewers and extensions. See issue #33566 for more details.
@playwright/experimental-ct-vue2 will no longer be updated.@playwright/experimental-ct-solid will no longer be updated.You can opt into the new headless mode by using 'chromium' channel. As official Chrome documentation puts it:
New Headless on the other hand is the real Chrome browser, and is thus more authentic, reliable, and offers more features. This makes it more suitable for high-accuracy end-to-end web app testing or browser extension testing.
See issue #33566 for the list of possible breakages you could encounter and more details on Chromium headless. Please file an issue if you see any problems after opting in.
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'], channel: 'chromium' },
},
],
});
<canvas> elements inside a snapshot now draw a preview.This version was also tested against the following stable channels:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →