Repository navigation
Update dependency Microsoft.Playwright to 1.64.1 - #1331
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-dotnet-monorepo
branch
from
June 24, 2026 01:50
9890266 to
151c8ca
Compare
renovate
Bot
force-pushed
the
renovate/playwright-dotnet-monorepo
branch
from
August 12, 2026 00:41
151c8ca to
5d20b0a
Compare
renovate
Bot
force-pushed
the
renovate/playwright-dotnet-monorepo
branch
from
September 24, 2026 02:12
5d20b0a to
401f353
Compare
renovate
Bot
force-pushed
the
renovate/playwright-dotnet-monorepo
branch
from
October 21, 2026 23:26
401f353 to
2fcf6a5
Compare
renovate
Bot
force-pushed
the
renovate/playwright-dotnet-monorepo
branch
from
October 22, 2026 22:45
2fcf6a5 to
2d74aa0
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.52.0→1.64.1Release Notes
microsoft/playwright-dotnet (Microsoft.Playwright)
v1.64.1Highlights
#3391 - chore(driver): bump bundled Node.js to 24.22.1
Browser Versions
This version was also tested against the following stable channels:
v1.64.0🧰 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:
RecordVideoFpsoption and newFpsoption in Screencast.StartAsync(). 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.🪆 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.AriaSnapshotAsync() in theAriaSnapshotMode.Aimode.New option
IncludeShadowin Page.ContentAsync() and Frame.ContentAsync() serializes open shadow roots as declarative shadow DOM.New option
SignCountsets the initial signature counter of a virtual credential. Credentials.CreateAsync() and Credentials.GetAsync() return the currentSignCount, and it is saved and restored together with the credentials in the storage state.New APIRequestContext.AddCookiesAsync(), APIRequestContext.CookiesAsync() and APIRequestContext.ClearCookiesAsync() manage cookies of a request context, mirroring the BrowserContext methods:
Breaking Changes⚠️
visibility: hidden, are now considered hidden by actions, Locator.IsVisibleAsync() and Expect(locator).ToBeVisibleAsync().Browser Versions
This version was also tested against the following stable channels:
v1.63.0🪟 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:
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
:visibleCSS pseudo-class:🖼️ Aria and screen snapshots in traces
New
AriaSnapshotsandScreenSnapshotsoptions of Tracing.StartAsync() capture an aria snapshot and a screenshot of the page 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
HttpCredentialsListnow also accepts an array of credentials. The first entry matching the request origin is used, and entries without an origin match any request.Opfsincludes the origin private file system in the storage state, so it can be persisted and restored into later contexts.Command line
pwsh bin/Debug/netX/playwright.ps1 install --no-removekeeps the browsers of other Playwright installations instead of removing them.pwsh bin/Debug/netX/playwright.ps1 codegen --http-credentialsrecords against pages behind HTTP authentication.Announcements
Browser Versions
This version was also tested against the following stable channels:
v1.62.0🖼️ WebP screenshots
page.screenshot() and locator.screenshot() can now capture screenshots in the WebP format — Playwright infers the format from a
.webpfile extension, or you can set thetypeexplicitly. Quality100(the default) is lossless, while lower values use lossy compression:New APIs
Scrolloption (Auto|None) on actions to opt out of Playwright's automatic scroll-into-view.Announcements
navigator.clipboardno longer read or overwrite the clipboard of the machine running them.Browser Versions
This version was also tested against the following stable channels:
v1.61.0🔑 WebAuthn passkeys
New Credentials virtual authenticator, available via BrowserContext.Credentials, lets tests register passkeys and answer
navigator.credentials.create()/navigator.credentials.get()ceremonies in the page — no real hardware key required, works in all browsers:You can also let the app register a passkey once in a setup test, read it back with Credentials.GetAsync(), and seed it into later tests — see Credentials for details.
🗃️ Web Storage
New WebStorage API, available via Page.LocalStorage and Page.SessionStorage, reads and writes the page's storage for the current origin:
New APIs
ArtifactsDirin BrowserType.ConnectOverCDPAsync() controls where artifacts such as traces and downloads are stored when attached to an existing browser.Cursorin Screencast.ShowActionsAsync() controls the cursor decoration rendered for pointer actions.OnFramecallback in Screencast.StartAsync() now receives aTimestampof when the frame was presented by the browser.🛠️ Other improvements
Browser Versions
This version was also tested against the following stable channels:
v1.60.0💬 Custom assertion messages
Expect()overloads now accept a custom message that is prepended to any failure, giving extra context in test reports:When the assertion fails, the message is prefixed:
🌐 HAR recording on Tracing
Tracing.StartHarAsync() / Tracing.StopHarAsync() expose HAR recording as a first-class tracing API, with the same
Content,ModeandUrlFilteroptions asRecordHar:🪝 Drop API
New Locator.DropAsync() simulates an external drag-and-drop of files or clipboard-like data onto an element. Playwright dispatches
dragenter,dragover, anddropwith a synthetic [DataTransfer] in the page context — works cross-browser and is great for testing upload zones:🎯 Aria snapshots
Page.Locator("body").Boxesoption on Locator.AriaSnapshotAsync() / Page.AriaSnapshotAsync() appends each element's bounding box as[box=x,y,width,height], useful for AI consumption.New APIs
Browser, Context and Page
Pagenow implementsIAsyncDisposable— pages can be used withawait usingfor automatic cleanup.Locators and Assertions
Descriptionin Page.GetByRole() / Locator.GetByRole() / Frame.GetByRole() / FrameLocator.GetByRole() for matching the accessible description.Pseudoin Expect(locator).ToHaveCSSAsync() reads computed styles from::beforeor::after.Stylein Locator.HighlightAsync() applies extra inline CSS to the highlight overlay, plus new Page.HideHighlightAsync() to clear all highlights.Network
NoDefaultsin BrowserType.ConnectOverCDPAsync() disables Playwright's default overrides on the default context (download behavior, focus emulation, media emulation), so attaching to a user's daily-driver browser doesn't disturb its state.Errors
🛠️ Other improvements
Breaking Changes⚠️
Handleoption onBrowserContext.ExposeBindingAsyncandPage.ExposeBindingAsync.Browser Versions
This version was also tested against the following stable channels:
v1.59.0🎬 Screencast
New Page.Screencast API provides a unified interface for capturing page content with:
Screencast recording — record video with precise start/stop control, as an alternative to the
recordVideoDiroption:Action annotations — enable built-in visual annotations that highlight interacted elements and display action titles during recording:
ShowActionsAsyncacceptsPosition("top-left","top","top-right","bottom-left","bottom","bottom-right"),Duration(ms per annotation), andFontSize(px). Returns a disposable to stop showing actions.Visual overlays — add chapter titles and custom HTML overlays on top of the page for richer narration:
Real-time frame capture — stream JPEG-encoded frames for custom processing like thumbnails, live previews, AI vision, and more:
Agentic video receipts — coding agents can produce video evidence of their work. After completing a task, an agent can record a walkthrough video with rich annotations for human review:
The resulting video serves as a receipt: chapter titles provide context, action annotations highlight each interaction, and the visual walkthrough is faster to review than text logs.
🔍 Snapshots and Locators
Page.Locator("body").AriaSnapshotAsync().DepthandModein Locator.AriaSnapshotAsync().New APIs
Screencast
Storage, Console and Errors
Filterin Page.ConsoleMessagesAsync() and page.pageErrors() controls which messages are returned.Miscellaneous
Livein Tracing.StartAsync() for real-time trace updates.ArtifactsDirin BrowserType.LaunchAsync() to configure the artifacts directory.🔗 Interoperability
New Browser.BindAsync() API makes a launched browser available for
playwright-cli,@playwright/mcp, and other clients to connect to.Bind a browser — start a browser and bind it so others can connect:
Connect from playwright-cli — connect to the running browser from your favorite coding agent.
Connect from @playwright/mcp — or point your MCP server to the running browser.
Connect from a Playwright client — use API to connect to the browser. Multiple clients at a time are supported!
Pass
HostandPortoptions to bind over WebSocket instead of a named pipe:Call Browser.UnbindAsync() to stop accepting new connections.
Run
npx playwright-cli showto open the Dashboard that lists all the bound browsers, their statuses, and allows interacting with them:Breaking Changes⚠️
Browser Versions
This version was also tested against the following stable channels:
v1.58.0Trace Viewer Improvements
Thanks to @cpAdm for contributing these improvements!
Miscellaneous
BrowserType.ConnectOverCDPAsync() now accepts an
IsLocaloption. When set totrue, it tells Playwright that it runs on the same host as the CDP server, enabling file system optimizations.Breaking Changes⚠️
_reactand_vueselectors. See locators guide for alternatives.:lightselector engine suffix. Use standard CSS selectors instead.Devtoolsfrom BrowserType.LaunchAsync() has been removed. UseArgs = new[] { "--auto-open-devtools-for-tabs" }instead.Browser Versions
v1.57.0Chrome for Testing
Starting with this release, Playwright switches from Chromium, to using Chrome for Testing builds. Both headed and headless browsers are subject to this. Your tests should still be passing after upgrading to Playwright 1.57.
We're expecting no functional changes to come from this switch. The biggest change is the new icon and title in your toolbar.
If you still see an unexpected behaviour change, please file an issue.
On Arm64 Linux, Playwright continues to use Chromium.
Breaking Change
After 3 years of being deprecated, we removed
Page.Accessibilityfrom our API. Please use other libraries such as Axe if you need to test page accessibility. See our Node.js guide for integration with Axe.New APIs
Stepsin Locator.ClickAsync() and Locator.DragToAsync() that configures the number ofmousemoveevents emitted while moving the mouse pointer to the target element.Browser Versions
v1.56.0New APIs
Breaking Changes
Miscellaneous
inputplaceholderBrowser Versions
v1.55.0Codegen
ToBeVisibleAsync()assertions: Codegen can now generate automaticToBeVisibleAsync()assertions for common UI interactions. This feature can be enabled in the Codegen settings UI.Breaking Changes
Miscellaneous
Microsoft.Playwright.Xunit.v3Microsoft.Playwright.MSTest.v4Browser Versions
This version was also tested against the following stable channels:
v1.54.0Highlights
New cookie property
PartitionKeyin browserContext.cookies() and browserContext.addCookies(). This property allows to save and restore partitioned cookies. See CHIPS MDN article for more information. Note that browsers have different support and defaults for cookie partitioning.New option
--user-data-dirin multiple commands. You can specify the same user data dir to reuse browsing state, like authentication, between sessions.pwsh bin/Debug/netX/playwright.ps1 opendoes not open the test recorder anymore. Usepwsh bin/Debug/netX/playwright.ps1 codegeninstead.Browser Versions
This version was also tested against the following stable channels:
v1.53.0Miscellaneous
New Steps in Trace Viewer:

New method Locator.Describe() to describe a locator. Used for trace viewer.
pwsh bin/Debug/netX/playwright.ps1 install --listwill now list all installed browsers, versions and locations.Browser Versions
This version was also tested against the following stable channels:
Configuration
📅 Schedule: (in timezone Asia/Shanghai)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, 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.