NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3549 most downloaded on npm
A high-level API to automate web browsers
Last release today
06 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 43 of 43 stable releases
1959 versions withdrawn
withdrawn after publishing
6 years old
3397 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
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/19661 - [BUG] 1.29.1 browserserver + page.goto = net::ERR_SOCKS_CONNECTION_FAILED
https://github.com/microsoft/playwright/issues/19661 - [BUG] 1.29.1 browserserver + page.goto = net::ERR_SOCKS_CONNECTION_FAILED
This version was also tested against the following stable channels:
Nothing published for this version
https://github.com/microsoft/playwright/issues/18928 - [BUG] Electron firstWindow times out after upgrading to 1.28.0 https://github.com/microsoft/pla
https://github.com/microsoft/playwright/issues/18928 - [BUG] Electron firstWindow times out after upgrading to 1.28.0 https://github.com/microsoft/playwright/issues/19246 - [BUG] Electron firstWindow times out after upgrading to 1.28.1 https://github.com/microsoft/playwright/issues/19412 - [REGRESSION]: 1.28 does not work with electron-serve anymore. https://github.com/microsoft/playwright/issues/19540 - [BUG] electron.app.getAppPath() returns the path one level higher if you run electron pointing to the directory https://github.com/microsoft/playwright/issues/19548 - [REGRESSION]: Ubuntu 18 LTS not supported anymore
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
New method `route.fetch()` and new option json for `route.fulfill()`:
New method route.fetch() and new option json for route.fulfill():
await page.route('**/api/settings', async route => {
// Fetch original settings.
const response = await route.fetch();
// Force settings theme to a predefined value.
const json = await response.json();
json.theme = 'Solorized';
// Fulfill with modified data.
await route.fulfill({ json });
});
New method locator.all() to iterate over all matching elements:
// Check all checkboxes!
const checkboxes = page.getByRole('checkbox');
for (const checkbox of await checkboxes.all())
await checkbox.check();
Locator.selectOption matches now by value or label:
<select multiple>
<option value="red">Red</div>
<option value="green">Green</div>
<option value="blue">Blue</div>
</select>
await element.selectOption('Red');
Retry blocks of code until all assertions pass:
await expect(async () => {
const response = await page.request.get('https://api.example.com');
await expect(response).toBeOK();
}).toPass();
Read more in our documentation.
Automatically capture full page screenshot on test failure:
// playwright.config.ts
import type { PlaywrightTestConfig } from '@playwright/test';
const config: PlaywrightTestConfig = {
use: {
screenshot: {
mode: 'only-on-failure',
fullPage: true,
}
}
};
export default config;
jsconfig.json.args and proxy for androidDevice.launchBrowser().postData in method route.continue() now supports serializable values.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
Your coding agent can read these notes before it upgrades. Set up the MCP server →