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.26.1
->1.46.1
4.1.0
->6.1.0
8.5.0
->11.1.6
^1.0.3
->^16.0.0
18.8.2
->20.15.0
20.16.1
(+1)5.39.0
->8.1.0
5.39.0
->8.1.0
v3
->v4
v3
->v4
9.4.1
->12.1.0
16.0.3
->16.4.5
8.24.0
->9.9.0
8.5.0
->9.1.0
1.5.0
->3.0.1
1.26.1
->1.46.1
7.3.0
->9.2.1
2.79.1
->4.20.0
4.21.0
3.9.0
->4.17.0
4.8.4
->5.5.4
0.23.4
->2.0.5
Release Notes
microsoft/playwright (@playwright/test)
v1.46.1
Compare Source
v1.46.0
Compare Source
v1.45.3
Compare Source
v1.45.2
Compare Source
v1.45.1
Compare Source
v1.45.0
Compare Source
v1.44.1
Compare 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.0
Compare 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
noWaitAfter
option.times
option in page.addLocatorHandler() to specify maximum number of times the handler should be run.Miscellaneous options
multipart
option inapiRequestContext.fetch()
now acceptsFormData
and supports repeating fields with the same name.expect(callback).toPass({ intervals })
can now be configured byexpect.toPass.inervals
option globally in testConfig.expect or per project in testProject.expect.expect(page).toHaveURL(url)
now supportsignoreCase
option.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_FILE
environment variable that might be more convenient on CI/CD.includeProjectInTestName
option.Command line
--last-failed
CLI 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-failed
option:$ 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.1
Compare 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.0
Compare Source
New APIs
Method browserContext.clearCookies() now supports filters to remove only some cookies.
New mode
retain-on-first-failure
for 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
Locator
object to aFrameLocator
. This can be useful when you have aLocator
object obtained somewhere, and later on would like to interact with the content inside the frame.New method frameLocator.owner() converts a
FrameLocator
object to aLocator
. This can be useful when you have aFrameLocator
object obtained somewhere, and later on would like to interact with theiframe
element.UI Mode Updates
@fast
or clicking on the tag itself.Browser Versions
This version was also tested against the following stable channels:
v1.42.1
Compare 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.0
Compare Source
New APIs
Test tags
New tag syntax for adding tags to the tests (@-tokens in the test title are still supported).
Use
--grep
command 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.timeout
option 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
tagged
andoutline
.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.2
Compare 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.1
Compare 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.0
Compare Source
New APIs
style
in page.screenshot([options]) and locator.screenshot([options]) to add custom CSS to the page before taking a screenshot.stylePath
for methods expect(page).toHaveScreenshot(name[, options]) and expect(locator).toHaveScreenshot(name[, options]) to apply a custom stylesheet while making the screenshot.fileName
option 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.1
Compare 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.0
Compare Source
Test Generator Update
New tools to generate assertions:
Here is an example of a generated test with assertions:
New APIs
reason
in page.close(), browserContext.close() and browser.close(). Close reason is reported for all operations interrupted by the closure.firefoxUserPrefs
in browserType.launchPersistentContext(userDataDir).Other Changes
Browser Versions
This version was also tested against the following stable channels:
v1.39.0
Compare Source
Add custom matchers to your expect
You can extend Playwright assertions by providing custom matchers. These matchers will be available on the expect object.
See the documentation for a full example.
Merge test fixtures
You can now merge test fixtures from multiple files or modules:
Merge custom expect matchers
You can now merge custom expect matchers from multiple files or modules:
Hide implementation details: box test steps
You can mark a
test.step()
as "boxed" so that errors inside it point to the step call site.Error: Timed out 5000ms waiting for expect(locator).toBeVisible() ... error details omitted ... 14 | await page.goto('https://github.com/login'); > 15 | await login(page); | ^ 16 | });
See
test.step()
documentation for a full example.New APIs
expect(locator).toHaveAttribute(name)
Browser Versions
This version was also tested against the following stable channels:
v1.38.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/27071 - expect(value).toMatchSnapshot() deprecation announcement on V1.38
https://github.com/microsoft/playwright/issues/27072 - [BUG] PWT trace viewer fails to load trace and throws TypeErrorhttps://github.com/microsoft/playwright/issues/270733 - [BUG] RangeError: Invalid time valuhttps://github.com/microsoft/playwright/issues/2708787 - [REGRESSION]: npx playwright test --list prints all tests twihttps://github.com/microsoft/playwright/issues/27113113 - [REGRESSION]: No longer able to extend PlaywrightTest.Matchers type for locators and pahttps://github.com/microsoft/playwright/issues/271447144 - [BUG]can not display thttps://github.com/microsoft/playwright/issues/2716327163 - [REGRESSION] Single Quote Wrongly Escaped by Locator When Using Unicodehttps://github.com/microsoft/playwright/issues/27181/27181 - [BUG] evaluate serializing fails at 1.38
Browser Versions
This version was also tested against the following stable channels:
v1.38.0
Compare Source
UI Mode Updates
New APIs
browserContext.on('weberror')
][browserContext.on('weberror')]locator.pressSequentially()
][locator.pressSequentially()]reporter.onEnd()
][reporter.onEnd()] now reportsstartTime
and total runduration
.Deprecations
page.type()
][page.type()], [frame.type()
][frame.type()], [locator.type()
][locator.type()] and [elementHandle.type()
][elementHandle.type()].Please use [
locator.fill()
][locator.fill()] instead which is much faster. Use [locator.pressSequentially()
][locator.pressSequentially()] only if there is aspecial keyboard handling on the page, and you need to press keys one-by-one.
Breaking Changes: Playwright no longer downloads browsers automatically
Playwright recommends to use
@playwright/test
package and download browsers vianpx playwright install
command. If you are following this recommendation, nothing has changed for you.However, up to v1.38, installing the
playwright
package instead of@playwright/test
did automatically download browsers. This is no longer the case, and we recommend to explicitly download browsers vianpx playwright install
command.v1.37 and earlier
playwright
package was downloading browsers duringnpm install
, while@playwright/test
was not.v1.38 and later
playwright
and@playwright/test
packages do not download browsers duringnpm install
.Recommended migration
Run
npx playwright install
to download browsers afternpm install
. For example, in your CI configuration:Alternative migration option - not recommended
Add
@playwright/browser-chromium
,@playwright/browser-firefox
and@playwright/browser-webkit
as a dependency. These packages download respective browsers duringnpm install
. Make sure you keep the version of all playwright packages in sync:Browser Versions
This version was also tested against the following stable channels:
v1.37.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/26496 - [REGRESSION] webServer stdout is always getting printedhttps://github.com/microsoft/playwright/issues/264922 - [REGRESSION] test.only with project dependency is not working
Browser Versions
This version was also tested against the following stable channels:
v1.37.0
Compare Source
Watch the overview: Playwright 1.36 & 1.37
✨ New tool to merge reports
If you run tests on multiple shards, you can now merge all reports in a single HTML report (or any other report)
using the new
merge-reports
CLI tool.Using
merge-reports
tool requires the following steps:Adding a new "blob" reporter to the config when running on CI:
The "blob" reporter will produce ".zip" files that contain all the information
about the test run.
Copying all "blob" reports in a single shared location and running
npx playwright merge-reports
:Read more in our documentation.
📚 Debian 12 Bookworm Support
Playwright now supports Debian 12 Bookworm on both x86_64 and arm64 for Chromium, Firefox and WebKit.
Let us know if you encounter any issues!
Linux support looks like this:
🌈 UI Mode Updates
Browser Versions
This version was also tested against the following stable channels:
v1.36.2
: 1.36.2Compare Source
Highlights
https://github.com/microsoft/playwright/issues/24316 - [REGRESSION] Character classes are not working in globs in 1.36
Browser Versions
This version was also tested against the following stable channels:
v1.36.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/24184 - [REGRESSION]: Snapshot name contains some random string after test name when tests are run in container
Browser Versions
This version was also tested against the following stable channels:
v1.36.0
Compare Source
Watch the overview: Playwright 1.36 & 1.37
Highlights
🏝️ Summer maintenance release.
Browser Versions
This version was also tested against the following stable channels:
v1.35.1
Compare Source
Highlights
https://github.com/microsoft/playwright/issues/23622 - [Docs] Provide a description how to correctly use expect.configure with poll parameterhttps://github.com/microsoft/playwright/issues/236666 - [BUG] Live Trace does not work with Codespacehttps://github.com/microsoft/playwright/issues/2369393 - [BUG] attachment steps are not hidden inside expect.toHaveScreenshot()
Browser Versions
This version was also tested against the following stable channels:
v1.35.0
Compare Source
Playwright v1.35 updates
Highlights
UI mode is now available in VSCode Playwright extension via a new "Show trace viewer" button:
UI mode and trace viewer mark network requests handled with
page.route()
andbrowserContext.route()
handlers, as well as those issued via the API testing:New option
maskColor
for methodspage.screenshot()
,locator.screenshot()
,expect(page).toHaveScreenshot()
andexpect(locator).toHaveScreenshot()
to change default masking color:New
uninstall
CLI command to uninstall browser binaries:Both UI mode and trace viewer now could be opened in a browser tab:
playwright-core
binary got renamed fromplaywright
toplaywright-core
. So if you useplaywright-core
CLI, make sure to update the name:$ npx playwright-core install # the new way to install browsers when using playwright-core
This change does not affect
@playwright/test
andplaywright
package users.Configuration
📅 Schedule: Branch creation - "before 4am on Monday" in timezone Europe/Helsinki, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.