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
{{ message }}
Repository navigation
chore(deps): update playwright monorepo to ^1.65.0 (main) - #3325
The test runner now runs under Bun. Bun transpiles your TypeScript test files itself, so Playwright does not use Babel or its compilation cache. Pass the --bun flag, because without it bunx playwright test runs on Node.js:
bunx --bun playwright test
Our CI runs the test runner tests under Bun 1.4.3 on Linux. Some features work differently under Bun:
There is no watch mode. UI mode does not run tests again when files change, and --only-changed does not follow imports.
Bun loads modules itself, so --tsconfig and the JSX options in tsconfig.json have no effect, and custom ESM loaders are not supported.
Stack traces do not include async frames, and API names do not include the class name: click instead of locator.click. This changes some step locations, step titles and error messages.
Console output of a test does not get into the trace and UI mode.
🚨 Reports with only failures
New failures reporter prints failures and successful retries as they occur, followed by a summary, without progress output.
New onlyFailures option of the HTML, JSON and JUnit reporters keeps only tests with unexpected outcomes, flaky tests and interrupted tests:
test('upload a file',async({ page })=>{test.skip('Not implemented yet');});
New PLAYWRIGHT_TRANSFORM_CACHE_DIR environment variable sets the directory for transpiled test files, for example on a Linux machine shared with other users.
TypeScript class fields now follow useDefineForClassFields from your tsconfig.json, the same as tsc. It is enabled for ES2022 and later targets, and when target is not specified. A field initializer that reads a constructor parameter property now fails, because the initializer runs first:
A sharded run now fails with "No tests found" when no tests match across all shards. Pass --pass-with-no-tests to allow this. An empty shard still passes when other shards have tests.
Cookie matching now follows RFC 6265. With a URL, browserContext.cookies() and apiRequestContext.cookies() no longer return host-only cookies for subdomains or Path=/api cookies for /apiv2, and a Path=/foo/ cookie does not match /foo. APIRequestContext sends a cookie without a name as Cookie: x instead of Cookie: =x, and stores Set-Cookie: token as a cookie without a name.
Proxy credentials are no longer sent to websites. The credentials in the proxy option now answer only proxy challenges. To authenticate on a website, use httpCredentials.
Text that the browser does not render, such as text that is not assigned to a slot or text directly inside a closed <details>, is no longer part of accessible names and aria snapshots. This can change the results of page.getByRole() with a name, locator.ariaSnapshot() and expect(locator).toMatchAriaSnapshot().
String and URLSearchParams values of the params option in APIRequestContext requests are now appended to the query that the URL already has, instead of replacing it.
.css, .less and .scss imports in test files now load as empty modules instead of being removed, so the imported file must exist.
The blob reporter again deletes the content of its output directory before it writes the report. Playwright 1.64 kept reports with other names.
Test locations of imported calls such as test( in CommonJS output now point to the start of the callee, for example a.spec.ts:3:7 instead of a.spec.ts:3:11. This is the same as in ESM.
Announcements
⚠️ Playwright no longer tests on Node.js 20. Use Node.js 22, 24 or 26, as listed in the system requirements.
🐳 Docker images now include Node.js 26 instead of Node.js 24, and the latest patch of Chromium on the same branch.
Browser Versions
Chromium 158.0.8127.18
Mozilla Firefox 159.0
WebKit 27.2
This version was also tested against the following stable channels:
Google Chrome 157
Microsoft Edge 156
Configuration
📅 Schedule: (UTC)
Branch creation
"before 3am on the first day of the month"
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.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
If you want to rebase/retry this PR, check this box
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Next steps: Take a moment to review the security alert above. Review
the linked package source code to understand the potential risk. Ensure the
package is not malicious before proceeding. If you're unsure how to proceed,
reach out to your security team or ask the Socket team for help at
support@socket.dev.
Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.
Mark the package as acceptable risk. To ignore this alert only
in this pull request, reply with the comment
@SocketSecurity ignore npm/playwright-core@1.65.0. You can
also ignore all packages with @SocketSecurity ignore-all.
To ignore an alert for all future pull requests, use Socket's Dashboard to
change the triage state of this alert.
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.
This PR contains the following updates:
^1.64.1→^1.65.0^1.64.1→^1.65.0Release Notes
microsoft/playwright (@playwright/test)
v1.65.0Compare Source
🥟 Run tests with Bun
The test runner now runs under Bun. Bun transpiles your TypeScript test files itself, so Playwright does not use Babel or its compilation cache. Pass the
--bunflag, because without itbunx playwright testruns on Node.js:bunx --bun playwright testOur CI runs the test runner tests under Bun 1.4.3 on Linux. Some features work differently under Bun:
--only-changeddoes not follow imports.--tsconfigand the JSX options intsconfig.jsonhave no effect, and custom ESM loaders are not supported.clickinstead oflocator.click. This changes some step locations, step titles and error messages.🚨 Reports with only failures
New
failuresreporter prints failures and successful retries as they occur, followed by a summary, without progress output.New
onlyFailuresoption of the HTML, JSON and JUnit reporters keeps only tests with unexpected outcomes, flaky tests and interrupted tests:🎯 Test runner
New built-in
-exclusive-test lock runs a test only when no other tests are running. All other tests continue to run in parallel with each other:test.skip(), test.fixme(), test.fail() and test.slow() now accept only a description. It is recorded in the test annotation:
New
PLAYWRIGHT_TRANSFORM_CACHE_DIRenvironment variable sets the directory for transpiled test files, for example on a Linux machine shared with other users.New APIs
timeoutandsignalin cdpSession.send().Notable Changes⚠️
TypeScript class fields now follow
useDefineForClassFieldsfrom yourtsconfig.json, the same astsc. It is enabled forES2022and later targets, and whentargetis not specified. A field initializer that reads a constructor parameter property now fails, because the initializer runs first:Move the initialization to the constructor, or set
"useDefineForClassFields": falsein yourtsconfig.json.Actions such as locator.click(), locator.check(), locator.tap(), locator.fill(), locator.clear() and locator.selectOption() now wait for the element to be not inert. An action on an element with the
inertattribute, or inside such an element, now times out if the element stays inert.A sharded run now fails with "No tests found" when no tests match across all shards. Pass
--pass-with-no-teststo allow this. An empty shard still passes when other shards have tests.Cookie matching now follows RFC 6265. With a URL, browserContext.cookies() and apiRequestContext.cookies() no longer return host-only cookies for subdomains or
Path=/apicookies for/apiv2, and aPath=/foo/cookie does not match/foo. APIRequestContext sends a cookie without a name asCookie: xinstead ofCookie: =x, and storesSet-Cookie: tokenas a cookie without a name.Proxy credentials are no longer sent to websites. The credentials in the
proxyoption now answer only proxy challenges. To authenticate on a website, usehttpCredentials.Text that the browser does not render, such as text that is not assigned to a slot or text directly inside a closed
<details>, is no longer part of accessible names and aria snapshots. This can change the results of page.getByRole() with a name, locator.ariaSnapshot() and expect(locator).toMatchAriaSnapshot().String and
URLSearchParamsvalues of theparamsoption in APIRequestContext requests are now appended to the query that the URL already has, instead of replacing it..css,.lessand.scssimports in test files now load as empty modules instead of being removed, so the imported file must exist.The blob reporter again deletes the content of its output directory before it writes the report. Playwright 1.64 kept reports with other names.
Test locations of imported calls such as
test(in CommonJS output now point to the start of the callee, for examplea.spec.ts:3:7instead ofa.spec.ts:3:11. This is the same as in ESM.Announcements
Browser Versions
This version was also tested against the following stable channels:
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate using a curated preset maintained by
. View repository job log here