Update dependency com.microsoft.playwright:playwright to v1.61.0 - #8
Open
renovate[bot] wants to merge 1 commit into
Open
Update dependency com.microsoft.playwright:playwright to v1.61.0#8renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
November 22, 2024 08:19
255f105 to
637a9b1
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
February 4, 2025 22:20
637a9b1 to
0b8007f
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
March 17, 2025 23:33
0b8007f to
7b00724
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
May 2, 2025 22:52
7b00724 to
0934fdd
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
June 24, 2025 21:59
0934fdd to
051384b
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
July 22, 2025 01:48
051384b to
5be30f3
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
August 27, 2025 21:09
5be30f3 to
75ad988
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
October 17, 2025 21:37
75ad988 to
0c0b889
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
December 5, 2025 05:31
0c0b889 to
8d6622b
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
January 29, 2026 01:47
8d6622b to
f8ebc78
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
April 10, 2026 00:34
f8ebc78 to
27c3ebd
Compare
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
May 19, 2026 04:56
27c3ebd to
7e052d6
Compare
1 task
renovate
Bot
force-pushed
the
renovate/com.microsoft.playwright-playwright-1.x
branch
from
June 29, 2026 22:58
7e052d6 to
bdd6828
Compare
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.47.0→1.61.0Release Notes
microsoft/playwright-java (com.microsoft.playwright:playwright)
v1.61.0Compare Source
🔑 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.get(), 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.connectOverCDP() controls where artifacts such as traces and downloads are stored when attached to an existing browser.cursorin screencast.showActions() controls the cursor decoration rendered for pointer actions.onFramecallback in screencast.start() 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.0Compare Source
🌐 HAR recording on Tracing
tracing.startHar() / tracing.stopHar() expose HAR recording as a first-class tracing API, with the same
content,modeandurlFilteroptions asrecordHar:🪝 Drop API
New locator.drop() 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.ariaSnapshot() / page.ariaSnapshot() appends each element's bounding box as[box=x,y,width,height], useful for AI consumption.New APIs
Browser, Context and Page
Locators and Assertions
descriptionin page.getByRole() / locator.getByRole() / frame.getByRole() / frameLocator.getByRole() for matching the accessible description.pseudoin assertThat(locator).hasCSS() reads computed styles from::beforeor::after.stylein locator.highlight() applies extra inline CSS to the highlight overlay, plus new page.hideHighlight() to clear all highlights.Network
noDefaultsin browserType.connectOverCDP() 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.exposeBindingandPage.exposeBinding.Browser Versions
This version was also tested against the following stable channels:
v1.59.0Compare Source
🎬 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:
screencast.showActions() accepts
position("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").ariaSnapshot().depthandmodein locator.ariaSnapshot().New APIs
Screencast
Storage, Console and Errors
filterin page.consoleMessages() and page.pageErrors() controls which messages are returned.Miscellaneous
livein tracing.start() for real-time trace updates.artifactsDirin browserType.launch() to configure the artifacts directory.🔗 Interoperability
New browser.bind() 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.unbind() to stop accepting new connections.
📊 Observability
Run
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.0Compare Source
UI Mode and Trace Viewer Improvements
Thanks to @cpAdm for contributing these improvements!
Miscellaneous
browserType.connectOverCDP() 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.launch() has been removed. UsesetArgs(Arrays.asList("--auto-open-devtools-for-tabs"))instead.Browser Versions
This version was also tested against the following stable channels:
v1.57.0Compare Source
Chrome 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.accessibility()from 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
Worker.waitForConsoleMessage()can be used to wait for it.stepsin locator.click() and locator.dragTo() that configures the number ofmousemoveevents emitted while moving the mouse pointer to the target element.Browser Versions
v1.56.0Compare Source
New APIs
Breaking Changes
Miscellaneous
inputplaceholderBrowser Versions
v1.55.0Compare Source
Codegen
isVisible()assertions: Codegen can now generate automaticisVisible()assertions for common UI interactions. This feature can be enabled in the Codegen settings UI.Breaking Changes
Miscellaneous
Browser Versions
This version was also tested against the following stable channels:
v1.54.0Compare Source
Highlights
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.mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="codegen --user-data-dir=./user-data"mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args=opencommand does not open the test recorder anymore. Usemvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args=codegeninstead.Browser Versions
This version was also tested against the following stable channels:
v1.53.0Compare Source
Miscellaneous
New Steps in Trace Viewer:

New method locator.describe() to describe a locator. Used for trace viewer.
mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install --list"will now list all installed browsers, versions and locations.Browser Versions
This version was also tested against the following stable channels:
v1.52.0Compare Source
Highlights
New method assertThat(locator).containsClass() to ergonomically assert individual class names on the element.
Aria Snapshots got two new properties:
/childrenfor strict matching and/urlfor links.Miscellaneous
setMaxRedirectsin apiRequest.newContext() to control the maximum number of redirects.setRefin locator.ariaSnapshot() to generate reference for each element in the snapshot which can later be used to locate the element.Breaking Changes
Cookieheader anymore. If aCookieheader is provided, it will be ignored, and the cookie will be loaded from the browser's cookie store. To set custom cookies, use browserContext.addCookies().Browser Versions
This version was also tested against the following stable channels:
v1.51.0Compare Source
Highlights
New option
setIndexedDBfor browserContext.storageState() allows to save and restore IndexedDB contents. Useful when your application uses IndexedDB API to store authentication tokens, like Firebase Authentication.Here is an example following the authentication guide:
New option
setVisiblefor locator.filter() allows matching only visible elements.New option
setContrastfor methods page.emulateMedia() and browser.newContext() allows to emulate theprefers-contrastmedia feature.New option
setFailOnStatusCodemakes all fetch requests made through the APIRequestContext throw on response codes other than 2xx and 3xx.Browser Versions
This version was also tested against the following stable channels:
v1.50.0Compare Source
Miscellaneous
UI updates
canvascontent in traces is error-prone. Display is now disabled by default, and can be enabled via theDisplay canvas contentUI setting.CallandNetworkpanels now display additional time information.Breaking
<input>,<select>, or a number of other editable elements.Browser Versions
This version was also tested against the following stable channels:
v1.49.0Compare Source
Aria snapshots
New assertion assertThat(locator).matchesAriaSnapshot() verifies page structure by comparing to an expected accessibility tree, represented as YAML.
You can generate this assertion with Test Generator or by calling locator.ariaSnapshot().
Learn more in the aria snapshots guide.
Tracing groups
New method tracing.group() allows you to visually group actions in the trace viewer.
Breaking:
chromeandmsedgechannels switch to new headless modeThis change affects you if you're using one of the following channels in your
playwright.config.ts:chrome,chrome-dev,chrome-beta, orchrome-canarymsedge,msedge-dev,msedge-beta, ormsedge-canaryAfter 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.
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.0Compare 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
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.