npm / @playwright/test
@playwright/test
What changed in @playwright/test 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.
@playwright/test 181 changes
Breaking changes 16
Elements inside non-visible iframes are now considered hidden by actions and visibility checks.
JSX compilation now follows tsconfig.json JSX settings and defaults to the automatic react/jsx-runtime.
Ubuntu 20.04 is no longer supported by Playwright.
Debian 11 is no longer supported by this release.
Removes the long-deprecated videoSize context option; use recordVideo instead.
Removes the long-deprecated videosPath context option; use recordVideo instead.
Removes the long-deprecated handle option from BrowserContext.exposeBinding and Page.exposeBinding.
The test runner now errors when configuration attempts to override a non-option fixture.
The test runner rejects workers values of 0 or negative numbers.
The JUnit reporter now distinguishes error types, causing some previous failure elements to be reported as error elements.
WebKit no longer supports macOS 14.
The experimental Svelte component testing package was removed.
The :light selector engine suffix has been removed; standard CSS selectors should be used instead.
WebKit no longer supports macOS 13; developers should upgrade macOS or keep using an older Playwright version.
Page#accessibility was removed after three years of deprecation; use other libraries such as Axe for accessibility testing.
The workspaceFolder reference was removed from the VS Code MCP integration.
Deprecations 6
The fontSize video decoration option is deprecated and replaced by style.
The experimental package will no longer be updated; users should migrate to the stories model.
The experimental package will no longer be updated; users should migrate to the stories model.
The experimental package will no longer be updated; users should migrate to the stories model.
columnNumber is deprecated in favor of the column property.
lineNumber is deprecated in favor of the line property.
New APIs and options 23
Calls a WebMCP tool with parameters through the Playwright CLI.
Schedules tests in random order and accepts a seed to reproduce the order.
Tests and test.describe groups can declare named locks to prevent concurrent execution across files, workers and projects.
Reporter omitTags suppresses tags automatically appended to test titles.
Adds a command-line option that appends a reporter to configured reporters instead of replacing them.
Adds HTTP authentication credentials when recording pages with codegen.
Keeps browsers belonging to other Playwright installations instead of removing them.
Actions can opt out of Playwright's automatic scroll-into-view behavior.
The HTML report's Merge files grouping can now be enabled from reporter configuration.
Screenshot assertions can store visual snapshots in lossless WebP format when the snapshot name ends in .webp.
Tears down a mounted component within a test.
Re-renders a mounted component with updated props within a test.
Adds support for polling assertions with soft expectations.
Adds a command-line shorthand for --grep-invert.
Connects playwright-cli to a browser bound by browser.bind.
Opens a Dashboard listing bound browsers and allowing interaction and DevTools access.
Enables dashboard visibility for all @playwright/test browsers when set to 1.
Disables navigator.platform emulation as a workaround for Ctrl or Meta dispatching errors.
Attaches and debugs tests over playwright-cli for agentic workflows.
Adds retain-on-failure-and-retries, recording each test run and retaining all traces when an attempt fails.
UI Mode and Trace Viewer add a system theme option that follows the operating system dark/light mode preference.
This environment variable opts out of dispatching Service Worker console messages through worker.on('console').
This environment variable opts out of reporting and routing network requests issued by Service Workers.
Performance 1
Videos use VP9 instead of VP8, reducing CPU usage and file size at comparable quality.
Behavior and default changes 9
The cursor remains visible at the last action point, survives navigations, and follows a natural eased path.
Custom matchers with the same name as default matchers now override the default implementation in the same expect instance.
HAR recordings now include WebSocket requests.
Trace recordings now include WebSocket requests.
JSON responses in UI Mode and Trace Viewer are now automatically formatted for readability.
The network details panel has been reorganized to improve usability.
Locator.toString() now uses the locator description when one is available.
Chromium now allows the local-network-access permission.
Test configuration resolution now falls back to the current working directory.
Tooling 5
The HTML report now renders a duration waterfall alongside test steps.
Accepts .zip files directly, so reports no longer need to be unzipped first.
Code editors in UI Mode and Trace Viewer now support Cmd/Ctrl+F search.
Playwright adds an official token-efficient CLI mode with an initial essential command set designed to be coding agent-friendly.
The HTML reporter adds a Speedboard tab that sorts executed tests by slowness to help identify slow tests.
Fixes and other changes 21
Intermittently no longer loses a packaged app's first window.
Chromium 155+ no longer aborts the redirect when any route is registered.
The unspecified snapshot update mode is now named default and retains the previous behavior.
The missing mode now passes runs when tests only create missing snapshots.
Button names are preserved when text is nested inside spans with aria-hidden SVG.
Image-type actionable elements are presented in accessibility snapshots.
Arguments using branded primitive types such as string & { brand } type-check correctly again.
Bare-specifier tsconfig extends values are resolved through the node_modules walk-up like tsc.
Directory-form tsconfig project references resolve correctly again.
Fixed unexpected byte counts reported by apiRequestContext._wrapApiCall in Playwright UI mode.
Fixed extensionless .ts subpath import resolution across pnpm workspace symlinks.
Fixed the sync loader throwing an error on Node 22.15.
WebSocket message times are no longer incorrectly downscaled by 1000 in Trace viewer.
Playwright now supports Ubuntu 26.04.
On Windows, browser processes no longer hide the console window, fixing regressions in codegen, --ui and show commands.
Chromium on macOS is no longer forced to use SwiftShader.
Trace viewer now handles paths provided via standard input.
Fixed local network permissions for Microsoft Edge.
The bundled Chromium version is now 145.0.7632.6.
The bundled Mozilla Firefox version is now 146.0.1.
The bundled WebKit version is now 26.0.