Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update playwright monorepo to v1.40.1 (#772)
[![Mend Renovate logo banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@playwright/test](https://playwright.dev) ([source](https://togithub.com/microsoft/playwright)) | [`1.35.1` -> `1.40.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.35.1/1.40.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.35.1/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.35.1/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [playwright-chromium](https://playwright.dev) ([source](https://togithub.com/microsoft/playwright)) | [`1.40.0` -> `1.40.1`](https://renovatebot.com/diffs/npm/playwright-chromium/1.39.0/1.40.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/playwright-chromium/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/playwright-chromium/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/playwright-chromium/1.39.0/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/playwright-chromium/1.39.0/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [playwright-core](https://playwright.dev) ([source](https://togithub.com/microsoft/playwright)) | [`1.40.0` -> `1.40.1`](https://renovatebot.com/diffs/npm/playwright-core/1.39.0/1.40.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/playwright-core/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/playwright-core/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/playwright-core/1.39.0/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/playwright-core/1.39.0/1.40.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>microsoft/playwright (@​playwright/test)</summary> ### [`v1.40.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.40.1) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.40.0...v1.40.1) ##### Highlights [https://github.com/microsoft/playwright/issues/28319](https://togithub.com/microsoft/playwright/issues/28319) - \[REGRESSION]: Version 1.40.0 Produces corrupted traces[https://github.com/microsoft/playwright/issues/28371](https://togithub.com/microsoft/playwright/issues/28371)1 - \[BUG] The color of the 'ok' text did not change to green in the vs code test results sectio[https://github.com/microsoft/playwright/issues/28321](https://togithub.com/microsoft/playwright/issues/28321)21 - \[BUG] Ambiguous test outcome and status for serial mo[https://github.com/microsoft/playwright/issues/28362](https://togithub.com/microsoft/playwright/issues/28362)362 - \[BUG] Merging blobs ends up in Error: Cannot create a string longer than 0x1fffffe8 charact[https://github.com/microsoft/playwright/pull/28239](https://togithub.com/microsoft/playwright/pull/28239)8239 - fix: collect all errors in removeFolders ##### Browser Versions - Chromium 120.0.6099.28 - Mozilla Firefox 119.0 - WebKit 17.4 This version was also tested against the following stable channels: - Google Chrome 119 - Microsoft Edge 119 ### [`v1.40.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.40.0) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.39.0...v1.40.0) #### Test Generator Update ![Playwright Test Generator](https://togithub.com/microsoft/playwright/assets/9881434/e8d67e2e-f36d-4301-8631-023948d3e190) New tools to generate assertions: - "Assert visibility" tool generates [expect(locator).toBeVisible()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-visible). - "Assert value" tool generates [expect(locator).toHaveValue(value)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-value). - "Assert text" tool generates [expect(locator).toContainText(text)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-contain-text). Here is an example of a generated test with assertions: ```js import { test, expect } from '@​playwright/test'; test('test', async ({ page }) => { await page.goto('https://playwright.dev/'); await page.getByRole('link', { name: 'Get started' }).click(); await expect(page.getByLabel('Breadcrumbs').getByRole('list')).toContainText('Installation'); await expect(page.getByLabel('Search')).toBeVisible(); await page.getByLabel('Search').click(); await page.getByPlaceholder('Search docs').fill('locator'); await expect(page.getByPlaceholder('Search docs')).toHaveValue('locator'); }); ``` #### New APIs - Option `reason` in [page.close()](https://playwright.dev/docs/api/class-page#page-close), [browserContext.close()](https://playwright.dev/docs/api/class-browsercontext#browser-context-close) and [browser.close()](https://playwright.dev/docs/api/class-browser#browser-close). Close reason is reported for all operations interrupted by the closure. - Option `firefoxUserPrefs` in [browserType.launchPersistentContext(userDataDir)](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context). #### Other Changes - Methods [download.path()](https://playwright.dev/docs/api/class-download#download-path) and [download.createReadStream()](https://playwright.dev/docs/api/class-download#download-create-read-stream) throw an error for failed and cancelled downloads. - Playwright [docker image](https://playwright.dev/docs/docker) now comes with Node.js v20. #### Browser Versions - Chromium 120.0.6099.28 - Mozilla Firefox 119.0 - WebKit 17.4 This version was also tested against the following stable channels: - Google Chrome 119 - Microsoft Edge 119 ### [`v1.39.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.39.0) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.38.1...v1.39.0) #### Add custom matchers to your expect You can extend Playwright assertions by providing custom matchers. These matchers will be available on the expect object. ```js import { expect as baseExpect } from '@​playwright/test'; export const expect = baseExpect.extend({ async toHaveAmount(locator: Locator, expected: number, options?: { timeout?: number }) { // ... see documentation for how to write matchers. }, }); test('pass', async ({ page }) => { await expect(page.getByTestId('cart')).toHaveAmount(5); }); ``` See the documentation [for a full example](https://playwright.dev/docs/test-configuration#add-custom-matchers-using-expectextend). #### Merge test fixtures You can now merge test fixtures from multiple files or modules: ```js import { mergeTests } from '@​playwright/test'; import { test as dbTest } from 'database-test-utils'; import { test as a11yTest } from 'a11y-test-utils'; export const test = mergeTests(dbTest, a11yTest); ``` ```js import { test } from './fixtures'; test('passes', async ({ database, page, a11y }) => { // use database and a11y fixtures. }); ``` #### Merge custom expect matchers You can now merge custom expect matchers from multiple files or modules: ```js import { mergeTests, mergeExpects } from '@​playwright/test'; import { test as dbTest, expect as dbExpect } from 'database-test-utils'; import { test as a11yTest, expect as a11yExpect } from 'a11y-test-utils'; export const test = mergeTests(dbTest, a11yTest); export const expect = mergeExpects(dbExpect, a11yExpect); ``` ```js import { test, expect } from './fixtures'; test('passes', async ({ page, database }) => { await expect(database).toHaveDatabaseUser('admin'); await expect(page).toPassA11yAudit(); }); ``` #### Hide implementation details: box test steps You can mark a [`test.step()`](https://playwright.dev/docs/api/class-test#test-step) as "boxed" so that errors inside it point to the step call site. ```js async function login(page) { await test.step('login', async () => { // ... }, { box: true }); // Note the "box" option here. } ``` ```txt 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()`](https://playwright.dev/docs/api/class-test#test-step) documentation for a full example. #### New APIs - [`expect(locator).toHaveAttribute(name)`](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-attribute-2) #### Browser Versions - Chromium 119.0.6045.9 - Mozilla Firefox 118.0.1 - WebKit 17.4 This version was also tested against the following stable channels: - Google Chrome 118 - Microsoft Edge 118 ### [`v1.38.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.38.1) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.38.0...v1.38.1) ##### Highlights [https://github.com/microsoft/playwright/issues/27071](https://togithub.com/microsoft/playwright/issues/27071) - expect(value).toMatchSnapshot() deprecation announcement on V1.38 [https://github.com/microsoft/playwright/issues/27072](https://togithub.com/microsoft/playwright/issues/27072) - \[BUG] PWT trace viewer fails to load trace and throws TypeError[https://github.com/microsoft/playwright/issues/27073](https://togithub.com/microsoft/playwright/issues/27073)3 - \[BUG] RangeError: Invalid time valu[https://github.com/microsoft/playwright/issues/27087](https://togithub.com/microsoft/playwright/issues/27087)87 - \[REGRESSION]: npx playwright test --list prints all tests twi[https://github.com/microsoft/playwright/issues/27113](https://togithub.com/microsoft/playwright/issues/27113)113 - \[REGRESSION]: No longer able to extend PlaywrightTest.Matchers type for locators and pa[https://github.com/microsoft/playwright/issues/27144](https://togithub.com/microsoft/playwright/issues/27144)7144 - \[BUG]can not display t[https://github.com/microsoft/playwright/issues/27163](https://togithub.com/microsoft/playwright/issues/27163)27163 - \[REGRESSION] Single Quote Wrongly Escaped by Locator When Using Unicode[https://github.com/microsoft/playwright/issues/27181](https://togithub.com/microsoft/playwright/issues/27181)/27181 - \[BUG] evaluate serializing fails at 1.38 ##### Browser Versions - Chromium 117.0.5938.62 - Mozilla Firefox 117.0 - WebKit 17.0 This version was also tested against the following stable channels: - Google Chrome 116 - Microsoft Edge 116 ### [`v1.38.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.38.0) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.37.1...v1.38.0) #### UI Mode Updates ![Playwright UI Mode](https://togithub.com/microsoft/playwright/assets/746130/8ba27be0-58fd-4f62-8561-950480610369) 1. Zoom into time range. 2. Network panel redesign. #### New APIs - [`browserContext.on('weberror')`][browserContext.on('weberror')] - [`locator.pressSequentially()`][locator.pressSequentially()] - The [`reporter.onEnd()`][reporter.onEnd()] now reports `startTime` and total run `duration`. #### Deprecations - The following methods were deprecated: [`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 a special keyboard handling on the page, and you need to press keys one-by-one. #### Breaking Changes: Playwright no longer downloads browsers automatically > \[!NOTE] > If you are using `@playwright/test` package, this change **does not** affect you. Playwright recommends to use `@playwright/test` package and download browsers via `npx 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 via `npx playwright install` command. **v1.37 and earlier** `playwright` package was downloading browsers during `npm install`, while `@playwright/test` was not. **v1.38 and later** `playwright` and `@playwright/test` packages do not download browsers during `npm install`. **Recommended migration** Run `npx playwright install` to download browsers after `npm install`. For example, in your CI configuration: ```yml - run: npm ci - run: npx playwright install --with-deps ``` **Alternative migration option - not recommended** Add `@playwright/browser-chromium`, `@playwright/browser-firefox` and `@playwright/browser-webkit` as a dependency. These packages download respective browsers during `npm install`. Make sure you keep the version of all playwright packages in sync: ```json5 // package.json { "devDependencies": { "playwright": "1.38.0", "@​playwright/browser-chromium": "1.38.0", "@​playwright/browser-firefox": "1.38.0", "@​playwright/browser-webkit": "1.38.0" } } ``` ##### Browser Versions - Chromium 117.0.5938.62 - Mozilla Firefox 117.0 - WebKit 17.0 This version was also tested against the following stable channels: - Google Chrome 116 - Microsoft Edge 116 [`browserContext.on('weberror')`]: https://playwright.dev/docs/api/class-browsercontext#browser-context-event-web-error [`locator.pressSequentially()`]: https://playwright.dev/docs/api/class-locator#locator-press-sequentially [`reporter.onEnd()`]: https://playwright.dev/docs/api/class-reporter#reporter-on-end [`page.type()`]: https://playwright.dev/docs/api/class-page#page-type [`frame.type()`]: https://playwright.dev/docs/api/class-frame#frame-type [`locator.type()`]: https://playwright.dev/docs/api/class-locator#locator-type [`elementHandle.type()`]: https://playwright.dev/docs/api/class-elementhandle#element-handle-type [`locator.fill()`]: https://playwright.dev/docs/api/class-locator#locator-fill [`expect(value).toMatchSnapshot()`]: https://playwright.dev/docs/api/class-snapshotassertions#snapshot-assertions-to-match-snapshot-1 [`expect(page).toHaveScreenshot()`]: https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1 [`expect(locator).toHaveScreenshot()`]: https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1 ### [`v1.37.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.37.1) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.37.0...v1.37.1) ##### Highlights [https://github.com/microsoft/playwright/issues/26496](https://togithub.com/microsoft/playwright/issues/26496) - \[REGRESSION] webServer stdout is always getting printed[https://github.com/microsoft/playwright/issues/26492](https://togithub.com/microsoft/playwright/issues/26492)2 - \[REGRESSION] test.only with project dependency is not working #### Browser Versions - Chromium 116.0.5845.82 - Mozilla Firefox 115.0 - WebKit 17.0 This version was also tested against the following stable channels: - Google Chrome 115 - Microsoft Edge 115 ### [`v1.37.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.37.0) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.36.2...v1.37.0) <a href="https://youtu.be/cEd4SH_Xf5U"><img src="https://github.com/microsoft/playwright/assets/746130/3a3cc6c3-b0f8-4a31-b1a3-a85bf5d93ac5" width=340></a> <a href="https://youtu.be/cEd4SH_Xf5U">Watch the overview: Playwright 1.36 & 1.37</a> #### ✨ 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: 1. Adding a new "blob" reporter to the config when running on CI: ```js title="playwright.config.ts" export default defineConfig({ testDir: './tests', reporter: process.env.CI ? 'blob' : 'html', }); ``` The "blob" reporter will produce ".zip" files that contain all the information about the test run. 2. Copying all "blob" reports in a single shared location and running `npx playwright merge-reports`: ```bash npx playwright merge-reports --reporter html ./all-blob-reports ``` Read more in [our documentation](https://playwright.dev/docs/test-sharding). #### 📚 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: | | Ubuntu 20.04 | Ubuntu 22.04 | Debian 11 | Debian 12 | | :--- | :---: | :---: | :---: | :---: | | Chromium | ✅ | ✅ | ✅ | ✅ | | WebKit | ✅ | ✅ | ✅ | ✅ | | Firefox | ✅ | ✅ | ✅ | ✅ | #### 🌈 UI Mode Updates - UI Mode now respects project dependencies. You can control which dependencies to respect by checking/unchecking them in a projects list. - Console logs from the test are now displayed in the Console tab. #### Browser Versions - Chromium 116.0.5845.82 - Mozilla Firefox 115.0 - WebKit 17.0 This version was also tested against the following stable channels: - Google Chrome 115 - Microsoft Edge 115 ### [`v1.36.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.36.2): 1.36.2 [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.36.1...v1.36.2) ##### Highlights [https://github.com/microsoft/playwright/issues/24316](https://togithub.com/microsoft/playwright/issues/24316) - \[REGRESSION] Character classes are not working in globs in 1.36 ##### Browser Versions - Chromium 115.0.5790.75 - Mozilla Firefox 115.0 - WebKit 17.0 This version was also tested against the following stable channels: - Google Chrome 114 - Microsoft Edge 114 ### [`v1.36.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.36.1) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.36.0...v1.36.1) ##### Highlights [https://github.com/microsoft/playwright/issues/24184](https://togithub.com/microsoft/playwright/issues/24184) - \[REGRESSION]: Snapshot name contains some random string after test name when tests are run in container ##### Browser Versions - Chromium 115.0.5790.75 - Mozilla Firefox 115.0 - WebKit 17.0 This version was also tested against the following stable channels: - Google Chrome 114 - Microsoft Edge 114 ### [`v1.36.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.36.0) [Compare Source](https://togithub.com/microsoft/playwright/compare/v1.35.1...v1.36.0) <a href="https://youtu.be/cEd4SH_Xf5U"><img src="https://github.com/microsoft/playwright/assets/746130/3a3cc6c3-b0f8-4a31-b1a3-a85bf5d93ac5" width=340></a> <a href="https://youtu.be/cEd4SH_Xf5U">Watch the overview: Playwright 1.36 & 1.37</a> ##### Highlights 🏝️ Summer maintenance release. ##### Browser Versions - Chromium 115.0.5790.75 - Mozilla Firefox 115.0 - WebKit 17.0 This version was also tested against the following stable channels: - Google Chrome 114 - Microsoft Edge 114 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/X-oss-byte/Nextjs).
- Loading branch information