chore(deps): update dependency @playwright/test to v1.50.1 #66
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.25.0->1.50.1Release Notes
microsoft/playwright (@playwright/test)
v1.50.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/34483 - [Feature]: single aria snapshot for different engines/browsershttps://github.com/microsoft/playwright/issues/344977 - [Bug]: Firefox not handling keepalive: true fetch requesthttps://github.com/microsoft/playwright/issues/3450404 - [Bug]: update snapshots not creating good difhttps://github.com/microsoft/playwright/issues/34507507 - [Bug]: snapshotPathTemplate doesnt work when multiple projehttps://github.com/microsoft/playwright/issues/344624462 - [Bug]: updateSnapshots "changed" throws an error
Browser Versions
This version was also tested against the following stable channels:
v1.50.0Compare Source
Test runner
New option
timeoutallows specifying a maximum run time for an individual test step. A timed-out step will fail the execution of the test.New method test.step.skip() to disable execution of a test step.
Expanded expect(locator).toMatchAriaSnapshot() to allow storing of aria snapshots in separate YAML files.
Added method expect(locator).toHaveAccessibleErrorMessage() to assert the Locator points to an element with a given aria errormessage.
Option testConfig.updateSnapshots added the configuration enum
changed.changedupdates only the snapshots that have changed, whereasallnow updates all snapshots, regardless of whether there are any differences.New option testConfig.updateSourceMethod defines the way source code is updated when testConfig.updateSnapshots is configured. Added
overwriteand3-waymodes that write the changes into source code, on top of existingpatchmode that creates a patch file.npx playwright test --update-snapshots=changed --update-source-method=3wayOption testConfig.webServer added a
gracefulShutdownfield for specifying a process kill signal other than the defaultSIGKILL.Exposed testStep.attachments from the reporter API to allow retrieval of all attachments created by that step.
New option
pathTemplatefortoHaveScreenshotandtoMatchAriaSnapshotassertions in the testConfig.expect configuration.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.all, rather than only the failed/changed snapshots. Use the new enumchangedto keep the old functionality of only updating the changed snapshots.Browser Versions
This version was also tested against the following stable channels:
v1.49.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/33802 - [Bug]: Codegen's Clear button doesn't work if not recordinghttps://github.com/microsoft/playwright/issues/338066 - [Bug]: playwright hangs while waiting for pending navigationhttps://github.com/microsoft/playwright/issues/3378787 - [Bug]: VSC extension isn't capturing all entered tehttps://github.com/microsoft/playwright/issues/33788788 - [Regression]: Double clicking the steps in trace viewer doesn't filter actihttps://github.com/microsoft/playwright/issues/337723772 - [Bug]: aria_snapshot generates invalid yaml when combined with an aria-label attrhttps://github.com/microsoft/playwright/issues/3379133791 - [Bug]: text input with number value raises "container is not iterable" with to_match_aria_snahttps://github.com/microsoft/playwright/issues/33644/33644 - [Bug]: getByRole can't find element with the accessible name from label element when aria-labelledby is nothttps://github.com/microsoft/playwright/issues/33660s/33660 - [Regression]: Unable to open Playwright UI in Dark Mode
Browser Versions
This version was also tested against the following stable channels:
v1.49.0Compare Source
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 and update the expected snapshot with
--update-snapshotscommand line flag.Learn more in the aria snapshots guide.
Test runner
tsconfigto be used for all tests.'on-first-failure'for testOptions.screenshot.Error.cause.Breaking: channels
chrome,msedgeand similar switch to new headlessThis 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-canaryWhat do I need to do?
After 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.
Other breaking changes
@playwright/experimental-ct-vue2will no longer be updated.@playwright/experimental-ct-solidwill no longer be updated.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.2Compare Source
Highlights
https://github.com/microsoft/playwright/issues/33141 - [Bug]: UI Mode crashedhttps://github.com/microsoft/playwright/issues/332199 - [BUG] Trace Viewer PWA crashes with "Aw, Snap
86 - [Bug]: UI Mode Memory problhttps://github.com/microsoft/playwright/issues/33000000 - [Regression]: Inspector and Browser doesn't close on CTRhttps://github.com/microsoft/playwright/issues/332043204 - [Bug]: Chrome tab and inspector not closing after terminating session in terminal
Browser Versions
This version was also tested against the following stable channels:
v1.48.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/33023 - [Bug]: command line flag --headed has no effect in ui modehttps://github.com/microsoft/playwright/issues/331077 - [REGRESSION]: page.waitForRequest does not get resolved since 1.48.https://github.com/microsoft/playwright/issues/3308585 - [Bug]: WebSocket route does not handle full URLs in Playwrighttps://github.com/microsoft/playwright/issues/33052052 - [Regression]: Inspector not showing recorded sthttps://github.com/microsoft/playwright/issues/331323132 - [Bug]: Wrong Ubuntu release name in Dockerfile.nhttps://github.com/microsoft/playwright/pull/3299632996 - [BUG] Trace attachments have small unusable height
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
formand similar ones now accept FormData.locationto pass custom step location.Browser Versions
This version was also tested against the following stable channels:
v1.47.2Compare Source
Highlights
https://github.com/microsoft/playwright/pull/32699- [REGRESSION]: fix(codegen): use content_frame property in python/.NEThttps://github.com/microsoft/playwright/issues/327066- [REGRESSION]: page.pause() does not pause test timeout after 1.4https://github.com/microsoft/playwright/pull/3266161 - fix(trace-viewer): time delta between local and remote actions
Browser Versions
This version was also tested against the following stable channels:
v1.47.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/32480 - [REGRESSION]: tsconfig.json's compilerOptions.paths no longer working in 1.47https://github.com/microsoft/playwright/issues/325522 - [REGRESSION]: broken UI in Trace Viewer while showing network response body
Browser Versions
This version was also tested against the following stable channels:
v1.47.0Compare Source
Network Tab improvements
The Network tab in the UI mode and trace viewer has several nice improvements:
Credit to @kubajanik for these wonderful improvements!
--tsconfigCLI optionBy default, Playwright will look up the closest tsconfig for each imported file using a heuristic. You can now specify a single tsconfig file in the command line, and Playwright will use it for all imported files, not only test files:
APIRequestContext now accepts
URLSearchParamsandstringas query parametersYou can now pass
URLSearchParamsandstringas query parameters to APIRequestContext:Miscellaneous
mcr.microsoft.com/playwright: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: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.behaviorin page.removeAllListeners(), browser.removeAllListeners() and browserContext.removeAllListeners() to wait for ongoing listeners to complete.certandkeyas buffers instead of file paths.text/htmlcontent type can now be opened in a new tab in the HTML report. This is useful for including third-party reports or other HTML content in the Playwright test report and distributing it to your team.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:
v1.46.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/32004 - [REGRESSION]: Client Certificates don't work with Microsoft IIShttps://github.com/microsoft/playwright/issues/320044 - [REGRESSION]: Websites stall on TLS handshake errors when using Client Certificatehttps://github.com/microsoft/playwright/issues/3214646 - [BUG]: Credential scanners warn about internal socks-proxy TLS certificathttps://github.com/microsoft/playwright/issues/32056056 - [REGRESSION]: 1.46.0 (TypeScript) - custom fixtures extend no longer chainahttps://github.com/microsoft/playwright/issues/320702070 - [Bug]: --only-changed flag and project dependenhttps://github.com/microsoft/playwright/issues/3218832188 - [Bug]: --only-changed with shallow clone throws "unknown revision" error
Browser Versions
This version was also tested against the following stable channels:
v1.46.0Compare Source
TLS Client Certificates
Playwright now allows to supply client-side certificates, so that server can verify them, as specified by TLS Client Authentication.
When client certificates are specified, all browser traffic is routed through a proxy that establishes the secure TLS connection, provides client certificates to the server and validates server certificates.
The following snippet sets up a client certificate for
https://example.com:You can also provide client certificates to a particular test project or as a parameter of browser.newContext() and apiRequest.newContext().
--only-changedcli optionNew CLI option
--only-changedallows to only run test files that have been changed since the last git commit or from a specific git "ref".Component Testing: New
routerfixtureThis release introduces an experimental
routerfixture to intercept and handle network requests in component testing.There are two ways to use the router fixture:
router.route(url, handler)that behaves similarly to page.route().router.use(handlers)and pass MSW library request handlers to it.Here is an example of reusing your existing MSW handlers in the test.
This fixture is only available in component tests.
UI Mode / Trace Viewer Updates
baseURL.Miscellaneous
maxRetriesoption in apiRequestContext.fetch() which retries on theECONNRESETnetwork error.Possibly breaking change
Fixture values that are array of objects, when specified in the
test.use()block, may require being wrapped into a fixture tuple. This is best seen on the example:Browser Versions
This version was also tested against the following stable channels:
v1.45.3Compare Source
Highlights
https://github.com/microsoft/playwright/issues/31764 - [Bug]: some actions do not appear in the trace filehttps://github.com/microsoft/playwright-java/issues/16177 - [Bug]: Traceviewer not reporting all actions
Browser Versions
This version was also tested against the following stable channels:
v1.45.2Compare Source
Highlights
https://github.com/microsoft/playwright/issues/31613 - [REGRESSION]: Trace is not showing any screenshots nor test namehttps://github.com/microsoft/playwright/issues/316011 - [REGRESSION]: missing trace for 2nd browsehttps://github.com/microsoft/playwright/issues/3154141 - [REGRESSION]: Failing tests have a trace with no images and with steps missing
Browser Versions
This version was also tested against the following stable channels:
v1.45.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/31473 - [REGRESSION]: Playwright raises an error ENOENT: no such file or directory, open 'test-results/.playwright-artifacts-0/hash.zip' with Electronhttps://github.com/microsoft/playwright/issues/314422 - [REGRESSION]: Locators of elements changing from/to hidden have operations hanging when using
--disable-web-securityhttps://github.com/microsoft/playwright/issues/31431 - [REGRESSION]: NewTab doesn't work properly with Chrome with
--disable-web-securityhttps://github.com/microsoft/playwright/issues/31425 - [REGRESSION]: beforeEach hooks are not skipped when describe condition depends on fixtureshttps://github.com/microsoft/playwright/issues/314911 - [REGRESSION]:
@playwright/experimental-ct-reactdoesn't work with VSCode extension and PNPMBrowser Versions
This version was also tested against the following stable channels:
v1.45.0Compare Source
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.
Test runner
New CLI option
--fail-on-flaky-teststhat sets exit code to1upon any flaky tests. Note that by default, the test runner exits with code0when all failed tests recovered upon a retry. With this option, the test run will fail in such case.New enviroment variable
PLAYWRIGHT_FORCE_TTYcontrols whether built-inlist,lineanddotreporters assume a live terminal. For example, this could be useful to disable tty behavior when your CI environment does not handle ANSI control sequences well. Alternatively, you can enable tty behavior even when to live terminal is present, if you plan to post-process the output and handle control sequences.Avoid TTY features that output ANSI control sequences
PLAYWRIGHT_FORCE_TTY=0 npx playwright test
Enable TTY features, assuming a terminal width 80
PLAYWRIGHT_FORCE_TTY=80 npx playwright test
Miscellaneous
Method locator.setInputFiles() now supports uploading a directory for
<input type=file webkitdirectory>elements.Multiple methods like locator.click() or locator.press() now support a
ControlOrMetamodifier key. This key maps toMetaon macOS and maps toControlon Windows and Linux.New property
httpCredentials.sendin apiRequest.newContext() that allows to either always send theAuthorizationheader or only send it in response to401 Unauthorized.New option
reasonin apiRequestContext.dispose() that will be included in the error message of ongoing operations interrupted by the context disposal.New option
hostin browserType.launchServer() allows to accept websocket connections on a specific address instead of unspecified0.0.0.0.Playwright now supports Chromium, Firefox and WebKit on Ubuntu 24.04.
v1.45 is the last release to receive WebKit update for macOS 12 Monterey. Please update macOS to keep using the latest WebKit.
Browser Versions
This version was also tested against the following stable channels:
v1.44.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/30779 - [REGRESSION]: When using
video: 'on'with VSCode extension the browser got closedhttps://github.com/microsoft/playwright/issues/30755 - [REGRESSION]: Electron launch with spaces inside executablePath didn't workhttps://github.com/microsoft/playwright/issues/307700 - [REGRESSION]: Mask elements outside of viewport when creating fullscreen screenshots didn't worhttps://github.com/microsoft/playwright/issues/3085858 - [REGRESSION]: ipv6 got shown instead of localhost in show-trace/show-report
Browser Versions
This version was also tested against the following stable channels:
v1.44.0Compare Source
New APIs
Accessibility assertions
expect(locator).toHaveAccessibleName() checks if the element has the specified accessible name:
expect(locator).toHaveAccessibleDescription() checks if the element has the specified accessible description:
expect(locator).toHaveRole() checks if the element has the specified ARIA role:
Locator handler
noWaitAfteroption.timesoption in page.addLocatorHandler() to specify maximum number of times the handler should be run.Miscellaneous options
multipartoption inapiRequestContext.fetch()now acceptsFormDataand supports repeating fields with the same name.expect(callback).toPass({ intervals })can now be configured byexpect.toPass.inervalsoption globally in testConfig.expect or per project in testProject.expect.expect(page).toHaveURL(url)now supportsignoreCaseoption.testProject.ignoreSnapshots allows to configure per project whether to skip screenshot expectations.
Reporter API
outputFile. The same option can also be specified asPLAYWRIGHT_BLOB_OUTPUT_FILEenvironment variable that might be more convenient on CI/CD.includeProjectInTestNameoption.Command line
--last-failedCLI option for running only tests that failed in the previous run.First run all tests:
$ npx playwright test Running 103 tests using 5 workers ... 2 failed [chromium] › my-test.spec.ts:8:5 › two ───────────────────────────────────────────────────────── [chromium] › my-test.spec.ts:13:5 › three ────────────────────────────────────────────────────── 101 passed (30.0s)Now fix the failing tests and run Playwright again with
--last-failedoption:$ npx playwright test --last-failed Running 2 tests using 2 workers 2 passed (1.2s)Browser Versions
This version was also tested against the following stable channels:
v1.43.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/30300 - [REGRESSION]: UI mode restarts if keep storage statehttps://github.com/microsoft/playwright/issues/303399 - [REGRESSION]: Brand new install of playwright, unable to run chromium with show browser using vscode
Browser Versions
This version was also tested against the following stable channels:
v1.43.0Compare Source
New APIs
Method browserContext.clearCookies() now supports filters to remove only some cookies.
New mode
retain-on-first-failurefor testOptions.trace. In this mode, trace is recorded for the first run of each test, but not for retires. When test run fails, the trace file is retained, otherwise it is removed.New property testInfo.tags exposes test tags during test execution.
New method locator.contentFrame() converts a
Locatorobject to aFrameLocator. This can be useful when you have aLocatorobject obtained somewhere, and later on would like to interact with the content inside the frame.New method frameLocator.owner() converts a
FrameLocatorobject to aLocator. This can be useful when you have aFrameLocatorobject obtained somewhere, and later on would like to interact with theiframeelement.UI Mode Updates
@fastor clicking on the tag itself.Browser Versions
This version was also tested against the following stable channels:
v1.42.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/29732 - [Regression]: HEAD requests to webServer.url since v1.42.0https://github.com/microsoft/playwright/issues/297466 - [Regression]: Playwright CT CLI scripts fail due to broken initializePlugin imporhttps://github.com/microsoft/playwright/issues/2973939 - [Bug]: Component tests fails when imported a module with a dot in a nahttps://github.com/microsoft/playwright/issues/29731731 - [Regression]: 1.42.0 breaks some import statemehttps://github.com/microsoft/playwright/issues/297609760 - [Bug]: Possible regression with chained locators in v1.42
Browser Versions
This version was also tested against the following stable channels:
v1.42.0Compare Source
New APIs
Test tags
New tag syntax for adding tags to the tests (@-tokens in the test title are still supported).
Use
--grepcommand line option to run only tests with certain tags.Annotating skipped tests
New annotation syntax for test annotations allows annotating the tests that do not run.
page.addLocatorHandler()
New method page.addLocatorHandler() 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.
Project wildcard filter
Playwright command line flag now supports '*' wildcard when filtering by project.
Other APIs
expect(callback).toPass({ timeout })
The timeout can now be configured by
expect.toPass.timeoutoption globally or in project configelectronApplication.on('console')
electronApplication.on('console') event is emitted when Electron main process calls console API methods.
page.pdf() accepts two new options
taggedandoutline.Breaking changes
Mixing the test instances in the same suite is no longer supported. Allowing it was an oversight as it makes reasoning about the semantics unnecessarily hard.
Announcements
Browser Versions
This version was also tested against the following stable channels:
v1.41.2Compare Source
Highlights
https://github.com/microsoft/playwright/issues/29123 - [REGRESSION] route.continue: Protocol error (Fetch.continueRequest): Invalid InterceptionId.
Browser Versions
This version was also tested against the following stable channels:
v1.41.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/29067 - [REGRESSION] Codegen/Recorder: not all clicks are being actioned nor recordedhttps://github.com/microsoft/playwright/issues/290288 - [REGRESSION] React component tests throw type error when passing null/undefined to componenhttps://github.com/microsoft/playwright/issues/2902727 - [REGRESSION] React component tests not passing Date prop valuhttps://github.com/microsoft/playwright/issues/29023023 - [REGRESSION] React component tests not rendering children phttps://github.com/microsoft/playwright/issues/290199019 - [REGRESSION] trace.playwright.dev does not currently support the loading from URL
Browser Versions
This version was also tested against the following stable channels:
v1.41.0Compare Source
New APIs
stylein page.screenshot([options]) and locator.screenshot([options]) to add custom CSS to the page before taking a screenshot.stylePathfor methods expect(page).toHaveScreenshot(name[, options]) and expect(locator).toHaveScreenshot(name[, options]) to apply a custom stylesheet while making the screenshot.fileNameoption for Blob reporter, to specify the name of the report to be created.Browser Versions
This version was also tested against the following stable channels:
v1.40.1Compare Source
Highlights
https://github.com/microsoft/playwright/issues/28319 - [REGRESSION]: Version 1.40.0 Produces corrupted traceshttps://github.com/microsoft/playwright/issues/283711 - [BUG] The color of the 'ok' text did not change to green in the vs code test results sectiohttps://github.com/microsoft/playwright/issues/2832121 - [BUG] Ambiguous test outcome and status for serial mohttps://github.com/microsoft/playwright/issues/28362362 - [BUG] Merging blobs ends up in Error: Cannot create a string longer than 0x1fffffe8 characthttps://github.com/microsoft/playwright/pull/282398239 - fix: collect all errors in removeFolders
Browser Versions
This version was also tested against the following stable channels:
v1.40.0Compare Source
Test Generator Update
New tools to generate assertions:
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 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 has been generated by Renovate Bot.