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.
This PR contains the following updates:
1.26.1
->1.50.1
4.1.0
->6.1.0
8.5.0
->12.1.2
^1.0.3
->^16.0.0
18.8.2
->22.13.5
5.39.0
->8.24.1
8.25.0
5.39.0
->8.24.1
8.25.0
v3
->v4
v3
->v4
9.4.1
->13.1.0
16.0.3
->16.4.7
8.24.0
->9.21.0
8.5.0
->10.0.1
1.5.0
->3.0.1
1.26.1
->1.50.1
7.3.0
->9.4.2
2.79.1
->4.34.8
3.9.0
->4.19.3
4.8.4
->5.7.3
0.23.4
->3.0.6
3.0.7
Release Notes
microsoft/playwright (@playwright/test)
v1.50.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/34483 - [Feature]: single aria snapshot for different engines/browsershttps://github.com/microsoft/playwright/issues/344977 - [Bug]: Firefox not handling keepalive: true fetch requesthttps://github.com/microsoft/playwright/issues/3450404 - [Bug]: update snapshots not creating good difhttps://github.com/microsoft/playwright/issues/34507507 - [Bug]: snapshotPathTemplate doesnt work when multiple projehttps://github.com/microsoft/playwright/issues/344624462 - [Bug]: updateSnapshots "changed" throws an error
Browser Versions
This version was also tested against the following stable channels:
v1.50.0
Compare Source
Test runner
New option
timeout
allows specifying a maximum run time for an individual test step. A timed-out step will fail the execution of the test.New method test.step.skip() to disable execution of a test step.
Expanded expect(locator).toMatchAriaSnapshot() to allow storing of aria snapshots in separate YAML files.
Added method expect(locator).toHaveAccessibleErrorMessage() to assert the Locator points to an element with a given aria errormessage.
Option testConfig.updateSnapshots added the configuration enum
changed
.changed
updates only the snapshots that have changed, whereasall
now updates all snapshots, regardless of whether there are any differences.New option testConfig.updateSourceMethod defines the way source code is updated when testConfig.updateSnapshots is configured. Added
overwrite
and3-way
modes that write the changes into source code, on top of existingpatch
mode that creates a patch file.npx playwright test --update-snapshots=changed --update-source-method=3way
Option testConfig.webServer added a
gracefulShutdown
field for specifying a process kill signal other than the defaultSIGKILL
.Exposed testStep.attachments from the reporter API to allow retrieval of all attachments created by that step.
New option
pathTemplate
fortoHaveScreenshot
andtoMatchAriaSnapshot
assertions in the testConfig.expect configuration.UI updates
canvas
content in traces is error-prone. Display is now disabled by default, and can be enabled via theDisplay canvas content
UI setting.Call
andNetwork
panels now display additional time information.Breaking
<input>
,<select>
, or a number of other editable elements.all
, rather than only the failed/changed snapshots. Use the new enumchanged
to keep the old functionality of only updating the changed snapshots.Browser Versions
This version was also tested against the following stable channels:
v1.49.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/33802 - [Bug]: Codegen's Clear button doesn't work if not recordinghttps://github.com/microsoft/playwright/issues/338066 - [Bug]: playwright hangs while waiting for pending navigationhttps://github.com/microsoft/playwright/issues/3378787 - [Bug]: VSC extension isn't capturing all entered tehttps://github.com/microsoft/playwright/issues/33788788 - [Regression]: Double clicking the steps in trace viewer doesn't filter actihttps://github.com/microsoft/playwright/issues/337723772 - [Bug]: aria_snapshot generates invalid yaml when combined with an aria-label attrhttps://github.com/microsoft/playwright/issues/3379133791 - [Bug]: text input with number value raises "container is not iterable" with to_match_aria_snahttps://github.com/microsoft/playwright/issues/33644/33644 - [Bug]: getByRole can't find element with the accessible name from label element when aria-labelledby is nothttps://github.com/microsoft/playwright/issues/33660s/33660 - [Regression]: Unable to open Playwright UI in Dark Mode
Browser Versions
This version was also tested against the following stable channels:
v1.49.0
Compare Source
Aria snapshots
New assertion expect(locator).toMatchAriaSnapshot() verifies page structure by comparing to an expected accessibility tree, represented as YAML.
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.
Test runner
tsconfig
to be used for all tests.'on-first-failure'
for testOptions.screenshot.Error.cause
.Breaking: channels
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
, orchrome-canary
msedge
,msedge-dev
,msedge-beta
, ormsedge-canary
What do I need to do?
After 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.
Other breaking changes
@playwright/experimental-ct-vue2
will no longer be updated.@playwright/experimental-ct-solid
will no longer be updated.Try new Chromium headless
You can opt into the new headless mode by using
'chromium'
channel. As official Chrome documentation puts it: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.
Miscellaneous
<canvas>
elements inside a snapshot now draw a preview.Browser Versions
This version was also tested against the following stable channels:
v1.48.2
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/33141 - [Bug]: UI Mode crashedhttps://github.com/microsoft/playwright/issues/332199 - [BUG] Trace Viewer PWA crashes with "Aw, Snap
86 - [Bug]: UI Mode Memory problhttps://github.com/microsoft/playwright/issues/33000000 - [Regression]: Inspector and Browser doesn't close on CTRhttps://github.com/microsoft/playwright/issues/332043204 - [Bug]: Chrome tab and inspector not closing after terminating session in terminal
Browser Versions
This version was also tested against the following stable channels:
v1.48.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/33023 - [Bug]: command line flag --headed has no effect in ui modehttps://github.com/microsoft/playwright/issues/331077 - [REGRESSION]: page.waitForRequest does not get resolved since 1.48.https://github.com/microsoft/playwright/issues/3308585 - [Bug]: WebSocket route does not handle full URLs in Playwrighttps://github.com/microsoft/playwright/issues/33052052 - [Regression]: Inspector not showing recorded sthttps://github.com/microsoft/playwright/issues/331323132 - [Bug]: Wrong Ubuntu release name in Dockerfile.nhttps://github.com/microsoft/playwright/pull/3299632996 - [BUG] Trace attachments have small unusable height
Browser Versions
This version was also tested against the following stable channels:
v1.48.0
Compare Source
WebSocket routing
New methods page.routeWebSocket() and browserContext.routeWebSocket() allow to intercept, modify and mock WebSocket connections initiated in the page. Below is a simple example that mocks WebSocket communication by responding to a
"request"
with a"response"
.See WebSocketRoute for more details.
UI updates
Miscellaneous
form
and similar ones now accept FormData.location
to pass custom step location.Browser Versions
This version was also tested against the following stable channels:
v1.47.2
Compare Source
Highlights
https://github.com/microsoft/playwright/pull/32699- [REGRESSION]: fix(codegen): use content_frame property in python/.NEThttps://github.com/microsoft/playwright/issues/327066- [REGRESSION]: page.pause() does not pause test timeout after 1.4https://github.com/microsoft/playwright/pull/3266161 - fix(trace-viewer): time delta between local and remote actions
Browser Versions
This version was also tested against the following stable channels:
v1.47.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/32480 - [REGRESSION]: tsconfig.json's compilerOptions.paths no longer working in 1.47https://github.com/microsoft/playwright/issues/325522 - [REGRESSION]: broken UI in Trace Viewer while showing network response body
Browser Versions
This version was also tested against the following stable channels:
v1.47.0
Compare Source
Network Tab improvements
The Network tab in the UI mode and trace viewer has several nice improvements:
Credit to @kubajanik for these wonderful improvements!
--tsconfig
CLI optionBy default, Playwright will look up the closest tsconfig for each imported file using a heuristic. You can now specify a single tsconfig file in the command line, and Playwright will use it for all imported files, not only test files:
APIRequestContext now accepts
URLSearchParams
andstring
as query parametersYou can now pass
URLSearchParams
andstring
as query parameters to APIRequestContext:Miscellaneous
mcr.microsoft.com/playwright:v1.47.0
now serves a Playwright image based on Ubuntu 24.04 Noble.To use the 22.04 jammy-based image, please use
mcr.microsoft.com/playwright:v1.47.0-jammy
instead.:latest
/:focal
/:jammy
tag for Playwright Docker images is no longer being published. Pin to a specific version for better stability and reproducibility.behavior
in page.removeAllListeners(), browser.removeAllListeners() and browserContext.removeAllListeners() to wait for ongoing listeners to complete.cert
andkey
as buffers instead of file paths.text/html
content type can now be opened in a new tab in the HTML report. This is useful for including third-party reports or other HTML content in the Playwright test report and distributing it to your team.noWaitAfter
in locator.selectOption() was deprecated.macos-13
. We recommend upgrading GitHub Actions tomacos-14
.Browser Versions
This version was also tested against the following stable channels:
v1.46.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/32004 - [REGRESSION]: Client Certificates don't work with Microsoft IIShttps://github.com/microsoft/playwright/issues/320044 - [REGRESSION]: Websites stall on TLS handshake errors when using Client Certificatehttps://github.com/microsoft/playwright/issues/3214646 - [BUG]: Credential scanners warn about internal socks-proxy TLS certificathttps://github.com/microsoft/playwright/issues/32056056 - [REGRESSION]: 1.46.0 (TypeScript) - custom fixtures extend no longer chainahttps://github.com/microsoft/playwright/issues/320702070 - [Bug]: --only-changed flag and project dependenhttps://github.com/microsoft/playwright/issues/3218832188 - [Bug]: --only-changed with shallow clone throws "unknown revision" error
Browser Versions
This version was also tested against the following stable channels:
v1.46.0
Compare Source
TLS Client Certificates
Playwright now allows to supply client-side certificates, so that server can verify them, as specified by TLS Client Authentication.
When client certificates are specified, all browser traffic is routed through a proxy that establishes the secure TLS connection, provides client certificates to the server and validates server certificates.
The following snippet sets up a client certificate for
https://example.com
:You can also provide client certificates to a particular test project or as a parameter of browser.newContext() and apiRequest.newContext().
--only-changed
cli optionNew CLI option
--only-changed
allows to only run test files that have been changed since the last git commit or from a specific git "ref".Component Testing: New
router
fixtureThis release introduces an experimental
router
fixture to intercept and handle network requests in component testing.There are two ways to use the router fixture:
router.route(url, handler)
that behaves similarly to page.route().router.use(handlers)
and pass MSW library request handlers to it.Here is an example of reusing your existing MSW handlers in the test.
This fixture is only available in component tests.
UI Mode / Trace Viewer Updates
baseURL
.Miscellaneous
maxRetries
option in apiRequestContext.fetch() which retries on theECONNRESET
network error.Possibly breaking change
Fixture values that are array of objects, when specified in the
test.use()
block, may require being wrapped into a fixture tuple. This is best seen on the example:Browser Versions
This version was also tested against the following stable channels:
v1.45.3
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/31764 - [Bug]: some actions do not appear in the trace filehttps://github.com/microsoft/playwright-java/issues/16177 - [Bug]: Traceviewer not reporting all actions
Browser Versions
This version was also tested against the following stable channels:
v1.45.2
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/31613 - [REGRESSION]: Trace is not showing any screenshots nor test namehttps://github.com/microsoft/playwright/issues/316011 - [REGRESSION]: missing trace for 2nd browsehttps://github.com/microsoft/playwright/issues/3154141 - [REGRESSION]: Failing tests have a trace with no images and with steps missing
Browser Versions
This version was also tested against the following stable channels:
v1.45.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/31473 - [REGRESSION]: Playwright raises an error ENOENT: no such file or directory, open 'test-results/.playwright-artifacts-0/hash.zip' with Electronhttps://github.com/microsoft/playwright/issues/314422 - [REGRESSION]: Locators of elements changing from/to hidden have operations hanging when using
--disable-web-security
https://github.com/microsoft/playwright/issues/31431 - [REGRESSION]: NewTab doesn't work properly with Chrome with
--disable-web-security
https://github.com/microsoft/playwright/issues/31425 - [REGRESSION]: beforeEach hooks are not skipped when describe condition depends on fixtureshttps://github.com/microsoft/playwright/issues/314911 - [REGRESSION]:
@playwright/experimental-ct-react
doesn't work with VSCode extension and PNPMBrowser Versions
This version was also tested against the following stable channels:
v1.45.0
Compare Source
Clock
Utilizing the new Clock API allows to manipulate and control time within tests to verify time-related behavior. This API covers many common scenarios, including:
See the clock guide for more details.
Test runner
New CLI option
--fail-on-flaky-tests
that sets exit code to1
upon any flaky tests. Note that by default, the test runner exits with code0
when all failed tests recovered upon a retry. With this option, the test run will fail in such case.New enviroment variable
PLAYWRIGHT_FORCE_TTY
controls whether built-inlist
,line
anddot
reporters assume a live terminal. For example, this could be useful to disable tty behavior when your CI environment does not handle ANSI control sequences well. Alternatively, you can enable tty behavior even when to live terminal is present, if you plan to post-process the output and handle control sequences.Avoid TTY features that output ANSI control sequences
PLAYWRIGHT_FORCE_TTY=0 npx playwright test
Enable TTY features, assuming a terminal width 80
PLAYWRIGHT_FORCE_TTY=80 npx playwright test
Miscellaneous
Method locator.setInputFiles() now supports uploading a directory for
<input type=file webkitdirectory>
elements.Multiple methods like locator.click() or locator.press() now support a
ControlOrMeta
modifier key. This key maps toMeta
on macOS and maps toControl
on Windows and Linux.New property
httpCredentials.send
in apiRequest.newContext() that allows to either always send theAuthorization
header or only send it in response to401 Unauthorized
.New option
reason
in apiRequestContext.dispose() that will be included in the error message of ongoing operations interrupted by the context disposal.New option
host
in browserType.launchServer() allows to accept websocket connections on a specific address instead of unspecified0.0.0.0
.Playwright now supports Chromium, Firefox and WebKit on Ubuntu 24.04.
v1.45 is the last release to receive WebKit update for macOS 12 Monterey. Please update macOS to keep using the latest WebKit.
Browser Versions
This version was also tested against the following stable channels:
v1.44.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/30779 - [REGRESSION]: When using
video: 'on'
with VSCode extension the browser got closedhttps://github.com/microsoft/playwright/issues/30755 - [REGRESSION]: Electron launch with spaces inside executablePath didn't workhttps://github.com/microsoft/playwright/issues/307700 - [REGRESSION]: Mask elements outside of viewport when creating fullscreen screenshots didn't worhttps://github.com/microsoft/playwright/issues/3085858 - [REGRESSION]: ipv6 got shown instead of localhost in show-trace/show-report
Browser Versions
This version was also tested against the following stable channels:
v1.44.0
Compare Source
New APIs
Accessibility assertions
expect(locator).toHaveAccessibleName() checks if the element has the specified accessible name:
expect(locator).toHaveAccessibleDescription() checks if the element has the specified accessible description:
expect(locator).toHaveRole() checks if the element has the specified ARIA role:
Locator handler
noWaitAfter
option.times
option in page.addLocatorHandler() to specify maximum number of times the handler should be run.Miscellaneous options
multipart
option inapiRequestContext.fetch()
now acceptsFormData
and supports repeating fields with the same name.expect(callback).toPass({ intervals })
can now be configured byexpect.toPass.inervals
option globally in testConfig.expect or per project in testProject.expect.expect(page).toHaveURL(url)
now supportsignoreCase
option.testProject.ignoreSnapshots allows to configure per project whether to skip screenshot expectations.
Reporter API
Configuration
📅 Schedule: Branch creation - "* 0-3 * * 1" in timezone Europe/Helsinki, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.