Closed renovate[bot] closed 8 months ago
[!IMPORTANT]
Auto Review Skipped
Bot user detected.
To trigger a single review, invoke the
@coderabbitai review
command.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
This PR contains the following updates:
1.37.1
->1.40.1
Release Notes
microsoft/playwright (playwright)
### [`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-1Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "before 4am on Monday" (UTC).
🚦 Automerge: Enabled.
♻ 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 has been generated by Mend Renovate. View repository job log here.