chore(deps): Bump Microsoft.Playwright from 1.12.0 to 1.59.0#16
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
--- updated-dependencies: - dependency-name: Microsoft.Playwright dependency-version: 1.59.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
Contributor
|
Closing — this PR targets the obsolete |
6 tasks
jkeeley2073
added a commit
that referenced
this pull request
May 15, 2026
…orcement (#216) Deployment Stacks (CLAUDE.md invariant #16 + PR self-audit item #11): - infra/scripts/Deploy-SharedResources.ps1: replace `az deployment sub create` and `az deployment sub what-if` with `az stack sub create` (stable stack name `pinwiz-shared-{env}`, not timestamped; --action-on-unmanage deleteResources so resources removed from Bicep are deleted on next deploy; --deny-settings-mode none; outputs read from `az stack sub show`). Requires az >= 2.61. - CLAUDE.md: locked invariant #16 — Deployment Stacks only; PR self-audit item #11 — grep `infra/scripts/` for `az deployment` as a 🔴 check. Web test FQDN fix (previously caused BadRequest: Value cannot be null): - infra/modules/shared.bicep: wizardFqdn var now constructs the ACA FQDN as `${wizardContainerAppName}.${acaEnvironment!.properties.defaultDomain}` rather than reading `wizardApp!.properties.configuration.ingress.fqdn`. Reading a runtime property from a conditionally-deployed resource at ARM evaluation time was unreliable when both resources deploy in the same pass. The constructed form is identical (ACA always uses {appName}.{env.defaultDomain}) and resolves cleanly from the stable environment resource.
This pull request was closed.
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.
Rebasing might not happen immediately, so don't worry if this takes some time.
Note: if you make any changes to this PR yourself, they will take precedence over the rebase.
Updated Microsoft.Playwright from 1.12.0 to 1.59.0.
Release notes
Sourced from Microsoft.Playwright's releases.
1.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:
... (truncated)
1.58.0
Trace 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
1.57.0
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.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
1.56.0
New APIs
Breaking Changes
Miscellaneous
inputplaceholderBrowser Versions
1.55.0
Codegen
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:
1.54.0
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.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:
1.53.0
Miscellaneous
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:
1.52.0
Highlights
New method Expect(locator).ToContainClassAsync() to ergonomically assert individual class names on the element.
Aria Snapshots got two new properties:
/childrenfor strict matching and/urlfor links.Miscellaneous
MaxRedirectsin apiRequest.NewContextAsync() to control the maximum number of redirects.Refin locator.AriaSnapshotAsync() 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.AddCookiesAsync().Browser Versions
This version was also tested against the following stable channels:
1.51.0
Highlights
New option
IndexedDBfor BrowserContext.StorageStateAsync() 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
Visiblefor locator.filter() allows matching only visible elements.New option
Contrastfor methods page.emulateMedia() and Browser.NewContextAsync() allows to emulate theprefers-contrastmedia feature.New option
FailOnStatusCodemakes 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:
1.50.0
Support for Xunit
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:
1.49.0
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 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.
... (truncated)
1.48.0
WebSocket routing
New methods Page.RouteWebSocketAsync() and BrowserContext.RouteWebSocketAsync() 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:
1.47.0
Network Tab improvements
The Network tab in the trace viewer has several nice improvements:
Miscellaneous
mcr.microsoft.com/playwright/dotnet:v1.47.0now serves a Playwright image based on Ubuntu 24.04 Noble.To use the 22.04 jammy-based image, please use
mcr.microsoft.com/playwright/dotnet:v1.47.0-jammyinstead.:latest/:focal/:jammytag for Playwright Docker images is no longer being published. Pin to a specific version for better stability and reproducibility.certandkeyas byte arrays instead of file paths.NoWaitAfterin 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:
1.46.0
TLS Client Certificates
Playwright now allows to supply client-side certificates, so that server can verify them, as specified by TLS Client Authentication.
You can provide client certificates as a parameter of browser.NewContextAsync() and APIRequest.NewContextAsync(). The following snippet sets up a client certificate for
https://example.com:When using the MSTest or NUnit base-classes, these can be added by using the ContextOptions method.
Trace Viewer Updates
BaseURL.Miscellaneous
MaxRetriesoption in apiRequestContext.FetchAsync() which retries on theECONNRESETnetwork error.Browser Versions
This version was also tested against the following stable channels:
1.45.1
Highlights
microsoft/playwright-java#1617 - [Bug]: Trace Viewer not reporting all actions
microsoft/playwright#31764 - [Bug]: some actions do not appear in the trace file
Browser Versions
This version was also tested against the following stable channels:
1.45.0
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.
Miscellaneous
<input type=file webkitdirectory>elements.ControlOrMetamodifier key. This key maps toMetaon macOS and maps toControlon Windows and Linux.httpCredentials.sendin apiRequest.newContext() that allows to either always send theAuthorizationheader or only send it in response to401 Unauthorized.Browser Versions
... (truncated)
1.44.0
New APIs
Accessibility assertions
Expect(locator).ToHaveAccessibleNameAsync() checks if the element has the specified accessible name:
Expect(locator).ToHaveAccessibleDescriptionAsync() checks if the element has the specified accessible description:
Expect(locator).ToHaveRoleAsync() checks if the element has the specified ARIA role:
Locator handler
NoWaitAfteroption.Timesoption in page.AddLocatorHandlerAsync() to specify maximum number of times the handler should be run.Miscellaneous options
Multipartoption inAPIRequestContext.FetchAsync()supports now repeating fields with the same name using formData.append():... (truncated)
1.43.0
New APIs
Method BrowserContext.ClearCookiesAsync() now supports filters to remove only some cookies.
New property Locator.ContentFrame converts a Locator object to a FrameLocator. This can be useful when you have a Locator object obtained somewhere, and later on would like to interact with the content inside the frame.
New property FrameLocator.Owner converts a FrameLocator object to a Locator. This can be useful when you have a FrameLocator object obtained somewhere, and later on would like to interact with the
iframeelement.Browser Versions
This version was also tested against the following stable channels:
1.42.0
New Locator Handler
New method page.addLocatorHandler(locator, handler, handler, handler) registers a callback that will be invoked when specified element becomes visible and may block Playwright actions. The callback can get rid of the overlay. Here is an example that closes a cookie dialog when it appears.
New APIs
taggedandoutline.Announcements
Browser Versions
This version was also tested against the following stable channels:
1.41.2
Highlights
microsoft/playwright#29067 - [REGRESSION] Codegen/Recorder: not all clicks are being actioned nor recorded
microsoft/playwright#29019 - [REGRESSION] trace.playwright.dev does not currently support the loading from URL
Browser Versions
This version was also tested against the following stable channels:
1.41.1
Highlights
Browser Versions
This version was also tested against the following stable channels:
1.41.0
New APIs
stylein page.ScreenshotAsync() and locator.ScreenshotAsync() to add custom CSS to the page before taking a screenshot.Browser Versions
This version was also tested against the following stable channels:
1.40.0
Test Generator Update
New tools to generate assertions:
Here is an example of a generated test with assertions:
New APIs
Reasonin Page.CloseAsync([options]), BrowserContext.CloseAsync([options]) and Browser.CloseAsync([options]). Close reason is reported for all operations interrupted by the closure.FirefoxUserPrefsin browserType.launchPersistentContext(userDataDir[, options]).Other Changes
Potential breaking changes
When using
Microsoft.Playwright.MSTestorMicrosoft.Playwright.NUnit,LocaleandColorSchemewere taken from the operating system as a default. After v1.40, its now aligned with Playwright for Node.js toen-USandlight. In order to opt-in for the previous behaviour, theContextOptionsmethod can be overidden.Browser Versions
This version was also tested against the following stable channels:
1.34.0
Highlights
New
Locator.Andto create a locator that matches both locators.New events
BrowserContext.ConsoleandBrowserContext.Dialogto subscribe to any dialogsand console messages from any page from the given browser context. Use the new methods
ConsoleMessage.Pageand
Dialog.Pageto pin-point event source.Browser Versions
This version was also tested against the following stable channels:
1.33.0
Highlights
Locators Update
Use
Locator.Orto create a locator that matches either of the two locators.Consider a scenario where you'd like to click on a "New email" button, but sometimes a security settings dialog shows up instead.
In this case, you can wait for either a "New email" button, or a dialog and act accordingly:
Use new options
HasNotandHasNotTextinLocator.Filterto find elements that do not match certain conditions.
Use new web-first assertion
Expect().ToBeAttachedAsync()to ensure that the elementis present in the page's DOM. Do not confuse with the
Expect().ToBeVisibleAsync()that ensures thatelement is both attached & visible.
New APIs
Locator.OrHasNotinLocator.FilterHasNotTextinLocator.FilterExpect().ToBeAttachedAsyncTimeoutinRoute.FetchAsyncmcr.microsoft.com/playwright/dotnet:v1.33.0now serves a Playwright image based on Ubuntu Jammy.To use the focal-based image, please use
mcr.microsoft.com/playwright/dotnet:v1.33.0-focalinstead.Browser Versions
This version was also tested against the following stable channels:
... (truncated)
1.32.0
v1.32.0
New APIs
UpdateModeandUpdateContentinPage.RouteFromHARAsync()andBrowserContext.RouteFromHARAsync().Namein methodTracing.StartChunkAsync().Browser Versions
This version was also tested against the following stable channels:
1.31.1
Highlights
microsoft/playwright#21093 - [Regression v1.31] Headless Windows shows cascading cmd windows
Browser Versions
This version was also tested against the following stable channels:
1.31.0
New APIs
New assertion
Expect(locator).ToBeInViewportAsync()ensures that locator points to an element that intersects viewport, according to the intersection observer API.New methods
BrowserContext.NewCDPSessionAsync(Page)andBrowser.NewBrowserCDPSessionAsync()create a Chrome DevTools Protocol session for the page and browser respectively.Miscellaneous
MaxRedirectsfor methodRoute.FetchAsync.Browser Versions
This version was also tested against the following stable channels:
1.30.0
🎉 Happy New Year 🎉
Maintenance release with bugfixes and new browsers only.
Browser Versions
This version was also tested against the following stable channels:
1.29.0
Highlights
New APIs
New method
Route.FetchAsyncand new optionJsonforRoute.FulfillAsync:New method
Locator.AllAsyncto iterate over all matching elements:Locator.SelectOptionAsyncmatches now by value or label:Browser Versions
This version was also tested against the following stable channels:
... (truncated)
1.28.0
Highlights
Playwright Tools
New APIs
method: Locator.blurmethod: Locator.clearBrowser Versions
This version was also tested against the following stable channels:
1.27.2
Highlights
This patch release includes the following bug fixes:
microsoft/playwright-dotnet#2345 - [BUG] No Name prop in class PageGetByRoleOptions
Browser Versions
This version was also tested against the following stable channels:
1.27.1
Highlights
This patch release includes the following bug fixes:
microsoft/playwright#18010 - fix(generator): generate nice locators for arbitrary selectors
microsoft/playwright#17960 - [BUG] Codegen 1.27 creates NUnit code that does not compile
microsoft/playwright#17952 - fix: fix typo in treeitem role typing
Browser Versions
This version was also tested against the following stable channels:
1.27.0
Highlights
Locators
With these new APIs writing locators is a joy:
All the same methods are also available on Locator, FrameLocator and Frame classes.
Other highlights
Behavior Changes
Expect(Locator).ToHaveAttributeAsync(name, value, options) with an empty value does not match missing attribute anymore. For example, the following snippet will succeed when
buttondoes not have adisabledattribute.Browser Versions
This version was also tested against the following stable channels:
1.26.0
Highlights
Assertions
Enabledfor Expect(Locator).ToBeEnabledAsync(options).Editablefor Expect(Locator).ToBeEditableAsync(options).Visiblefor Expect(Locator).ToBeVisibleAsync(options).Other highlights
MaxRedirectsfor ApiRequestContext.GetAsync(url, options) and others to limit redirect count.packages.config)Behavior Change
A bunch of Playwright APIs already support the
WaitUntil: WaitUntilState.DOMContentLoadedoption. For example:Prior to 1.26, this would wait for all iframes to fire the
DOMContentLoadedevent.To align with web specification, the
WaitUntilState.DOMContentLoadedvalue only waits for the target frame to fire the'DOMContentLoaded'event. UseWaitUntil: WaitUntilState.Loadto wait for all iframes.Browser Versions
This version was also tested against the following stable channels:
1.25.0
Highlights
New .runsettings file support
Microsoft.Playwright.NUnitandMicrosoft.Playwright.MSTestwill now consider the.runsettingsfile and passed settings via the CLI when running end-to-end tests. See in the documentation for a full list of supported settings.The following does now work:
Announcements
Browser Versions
This version was also tested against the following stable channels:
1.24.1
Highlights
This patch includes the following bug fixes:
microsoft/playwright-dotnet#2231 - [REGRESSION]
HEADLESSenv does not work anymoremicrosoft/playwright-dotnet#2232 - [BUG] - Install MS Edge fails
Browser Versions
This version was also tested against the following stable channels:
1.24.0
Highlights
🐂 Debian 11 Bullseye Support
Playwright now supports Debian 11 Bullseye on x86_64 for Chromium, Firefox and WebKit. Let us know
if you encounter any issues!
Linux support looks like this:
📖 New Introduction Docs
We rewrote our Getting Started docs to be more end-to-end testing focused. Check them out on playwright.dev.
Browser Versions
This version was also tested against the following stable channels:
1.23.0
Highlights
API Testing
Playwright for .NET 1.23 introduces new API Testing that lets you send requests to the server directly from .NET!
Now you can:
To do a request on behalf of Playwright's Page, use new
Page.APIRequestAPI:Read more about it in our API testing guide.
Network Replay
Now you can record network traffic into a HAR file and re-use this traffic in your tests.
To record network into HAR file:
Alternatively, you can record HAR programmatically:
... (truncated)
1.22.0
Highlights
Role selectors that allow selecting elements by their ARIA role, ARIA attributes and accessible name.
Read more in our documentation.
New
Locator.FilterAPI to filter an existing locator1.21.0
Highlights
New experimental role selectors that allow selecting elements by their ARIA role, ARIA attributes and accessible name.
To use role selectors, make sure to pass
PLAYWRIGHT_EXPERIMENTAL_FEATURES=1environment variable.Read more in our documentation.
New
scaleoption inPage.ScreenshotAsyncfor smaller sized screenshots.New
caretoption inPage.ScreenshotAsyncto control text caret. Defaults to"hide".We now ship a designated .NET docker image
mcr.microsoft.com/playwright/dotnet. Read more in our documentation.Behavior Changes
Locator.SetInputFilesAsyncAPI.Browser Versions
This version was also tested against the following stable channels:
1.20.2
Highlights
This patch includes the following bug fixes:
microsoft/playwright#12711 - [REGRESSION] Page.screenshot hangs on some sites
microsoft/playwright#12807 - [BUG] Cookies get assigned before fulfilling a response
microsoft/playwright#12821 - [BUG] Chromium: Cannot click, element intercepts pointer events
microsoft/playwright#12887 - [BUG] Locator.count() with _vue selector with Repro
microsoft/playwright#12974 - [BUG] Regression - chromium browser closes during test or debugging session on macos
microsoft/playwright-dotnet#2074 - [BUG] NullReferenceException in Connection.WrapApiCallAsync
microsoft/playwright-dotnet#2069 - [BUG] dotnet build did not override files
Browser Versions
This version was also tested against the following stable channels:
1.20.1
Highlights
This patch includes bug fixes for the following issues:
microsoft/playwright-dotnet#2067 - [BUG] Running Playwright without a namespace lead to a null pointer exception
Browser Versions
This version was also tested against the following stable channels:
1.20.0
Web-First Assertions
Playwright for .NET 1.20 introduces Web-First Assertions.
Consider the following example:
Playwright will be re-testing the node with the selector
.statusuntilfetched Node has the
"Submitted"text. It will be re-fetching the node andchecking it over and over, until the condition is met or until the timeout is
reached. You can pass this timeout as an option.
Read more in our documentation.
Other Updates
page.screenshot(),locator.screenshot()andelementHandle.screenshot():ScreenshotAnimations.Disabledrewinds all CSS animations and transitions to a consistent statemask: Locator[]masks given elements, overlaying them with pink#FF00FFboxes.Locator.highlight()visually ..._De...
Description has been truncated