Repository navigation
Update dependency @playwright/test to v1.65.0 - #13
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/playwright-monorepo
branch
2 times, most recently
from
October 16, 2026 19:22
7e8efd3 to
7a24189
Compare
renovate
Bot
force-pushed
the
renovate/playwright-monorepo
branch
from
November 6, 2026 01:51
7a24189 to
db43d88
Compare
This branch has not been deployed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.63.0→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().Breaking 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:
v1.64.1Compare Source
Bug Fixes
v1.64.0Compare Source
🧰 WebMCP
New page.webmcp and frame.webmcp give access to the tools that a page registers through the experimental WebMCP browser API, so you can test them like any other part of your app:
Playwright MCP also supports WebMCP by default, with page-defined tools offered to the agent as
webmcp_<tool>. Pass--no-webmcpto opt out.playwright-cliexposes them as well:playwright-cli webmcp-list playwright-cli webmcp-call search_catalog --params '{"query":"cats"}'🎬 Better videos
Videos can now be recorded at a custom frame rate, and the decorations for actions are styled with plain CSS:
fpsoption in testOptions.video,recordVideoandscreencast.start(). Firefox and WebKit currently capture up to 25 frames per second.
styleoption takes CSS declarations for thepointmarker, the targethighlightand the actiontitle. It replaces thefontSizeoption, which is now deprecated.quality.
playwright-cli.🎯 Test runner
New testProject.default option keeps a project in the config without running it by default. You can configure every browser you care about, and let a plain
npx playwright testrun just your favourite one:New
--shufflecommand line option schedules tests in a random order, which helps to find tests that accidentally depend on each other.New
lockoption in test.describe.configure() adds test locks to all tests in a file or a group:New
typeoption oftoHaveScreenshotin testConfig.expect stores all unnamed screenshots as WebP:🪆 Locator.within()
New locator.within() combines two locators that you already have, reading in the natural order —
"this button, within that dialog":
Relative locators such as locator.nth() or locator.first() are resolved inside each parent
separately, which makes column-like queries straightforward:
New APIs
New page.getByRef() locates an element by its aria ref, such as
e2, reported by page.ariaSnapshot() in the'ai'mode.New option
includeShadowin page.content() and frame.content() serializes open shadow roots as declarative shadow DOM.New option
signCountsets the initial signature counter of a virtual credential. credentials.create() and credentials.get() return the currentsignCount, and it is saved and restored together with the credentials in the storage state.New fullConfig.filteredProjects lists the projects that were selected to run after applying the
--projectfilter. It is available in global setup and reporters.New apiRequestContext.addCookies(), apiRequestContext.cookies() and apiRequestContext.clearCookies() manage cookies of a request context, mirroring the BrowserContext methods:
Breaking changes⚠️
screenproperty is now forwarded from the device descriptors. If you use...devices['Desktop Chrome']and alike,window.screenand media queries now see the emulated screen size. You can opt-out by explicitly settingscreentoundefined:JSX in your test files now follows your
tsconfig.json. Playwright compiles JSX in test files according to thejsx,jsxFactory,jsxFragmentFactoryandjsxImportSourcetsconfig options, and defaults to the automatic runtime fromreact/jsx-runtime.--update-snapshots=missingnow passes the test run. Tests that only create missing snapshots now pass in the'missing'mode of testConfig.updateSnapshots, so that CI can generate new snapshots and verify the existing ones in a single run. The mode used when the option is not specified is now called'default'and behaves as before: missing snapshots are written and the test fails.Elements inside hidden iframes are considered hidden. Elements inside an iframe that is not visible, for example with
visibility: hidden, are now considered hidden by actions, locator.isVisible() and expect(locator).toBeVisible().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 this update again.
This PR was generated by Mend Renovate. View the repository job log.