You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
e1af0e Ignore stdio on Windows when not waiting for process
Previously, when using PowerShell on Windows to open URLs or files without the wait option, the parent Node.js process would not exit naturally. Users had to press Ctrl+C to terminate the script. This happened because PowerShell kept stdio streams open, preventing the parent process from exiting even though subprocess.unref() was called.
Tests that access a shared resource — an external service, a global account setting — can now declare a named lock.
Tests that share a lock name never run concurrently, across files, workers and projects, while
everything else keeps running in parallel:
test('update user settings',{lock: 'user-settings'},async({ page })=>{// never runs at the same time as other tests holding 'user-settings'});
A test can hold multiple locks, and test.describe() accepts a lock for the whole group.
Learn more about test locks.
🪟 Locate across frames
page.frameLocator() and frame.frameLocator() called without a selector search in any frame of the
subtree, so you no longer need to locate the iframe first:
// Finds the button in any frame on the page.awaitpage.frameLocator().getByRole('button').click();
The rest of the locator resolves inside a single frame, just like a regular locator, and an error is thrown when it
matches elements in several frames.
👁️ Visible-only locators
New locator.visible() returns a locator that matches only visible elements. It is the recommended
replacement for the :visible CSS pseudo-class:
awaitpage.locator('button').visible().click();
🧾 Step params and subtitles
Steps now carry structured data for reporters. Playwright API steps report the target locator and call arguments,
and test.step() accepts subtitle and params options for your own steps:
Reporters receive them via testStep.subtitle and testStep.params. For Playwright API
steps, the subtitle is the locator or the navigation url — for example, Click with subtitle getByRole('button').
Both are rendered next to the step title in the trace viewer and the HTML report.
🖼️ Aria and screen snapshots in traces
The snapshots option of tracing.start() and the testOptions.trace fixture option now accept an
object selecting what to capture on every action:
With aria and screen snapshots recorded, the new Display Aria mode in the trace viewer shows the action screenshot
side by side with the aria snapshot, and hovering an aria node highlights it on the screenshot.
New APIs
Browser and Context
httpCredentials now also accepts an array of credentials. The first entry matching the request origin is used, and entries without an origin match any request.
New option opfs includes the origin private file system in the storage state, so it can be persisted and restored into later contexts.
New --add-reporter command line option appends a reporter on top of the ones configured in playwright.config, instead of replacing them like --reporter does.
New omitTags option for the list, line, dot, github and junit reporters suppresses the tags that are automatically appended to test titles.
Command line
npx playwright install --no-remove keeps the browsers of other Playwright installations instead of removing them.
npx playwright codegen --http-credentials records against pages behind HTTP authentication.
Miscellaneous
New built-in perfetto reporter writes a Trace Event Format file for the Perfetto UI or chrome://tracing, rendering the test run as a timeline with a lane per worker.
The HTML report renders a duration waterfall next to test steps.
Announcements
⚠️ The experimental @​playwright/experimental-ct-react, @​playwright/experimental-ct-react17 and @​playwright/experimental-ct-vue packages will no longer be updated. Follow the migration guide to move to the stories model introduced in 1.62. Story ids passed to fixtures.mount() can now be typed through the generated Stories registry.
⚠️ Ubuntu 20.04 is not supported anymore.
🐧 On Linux arm64, Playwright now downloads the Chrome for Testing build of Chromium, the same build used on all other platforms.
Browser Versions
Chromium 153.0.8010.12
Mozilla Firefox 155.0
WebKit 26.6
This version was also tested against the following stable channels:
Google Chrome 153
Microsoft Edge 153
### v1.62.1### Bug Fixes
#41989 [Regression]: tsconfig "extends" bare specifier isn't resolved via node_modules walk-up like tsc (fatal since 1.62)
#41998 [Regression]: directory-form tsconfig project references ("path": "../pkg") fail to resolve (fatal since 1.62)
#41985 Accessibility snapshot drops button name when text is nested inside spans with aria-hidden SVG
#42000 [Regression]: page.evaluate() arg of a branded primitive type (string & { brand }) no longer type-checks since 1.62
#42013 [BUG]Image-type actionable elements are not presented in the snapshot.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated Packages