Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(deps): update playwright monorepo to v1.35.1 (#1103)
[![Mend Renovate](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.27.1` -> `1.35.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.27.1/1.35.1) | [![age](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.35.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.35.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.35.1/compatibility-slim/1.27.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.35.1/confidence-slim/1.27.1)](https://docs.renovatebot.com/merge-confidence/) | | [playwright](https://playwright.dev) ([source](https://togithub.com/Microsoft/playwright)) | [`1.27.1` -> `1.35.1`](https://renovatebot.com/diffs/npm/playwright/1.27.1/1.35.1) | [![age](https://badges.renovateapi.com/packages/npm/playwright/1.35.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/playwright/1.35.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/playwright/1.35.1/compatibility-slim/1.27.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/playwright/1.35.1/confidence-slim/1.27.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>Microsoft/playwright</summary> ### [`v1.35.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.35.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.35.0...v1.35.1) ##### Highlights [https://github.com/microsoft/playwright/issues/23622](https://togithub.com/microsoft/playwright/issues/23622) - \[Docs] Provide a description how to correctly use expect.configure with poll parameter[https://github.com/microsoft/playwright/issues/23666](https://togithub.com/microsoft/playwright/issues/23666)6 - \[BUG] Live Trace does not work with Codespace[https://github.com/microsoft/playwright/issues/23693](https://togithub.com/microsoft/playwright/issues/23693)93 - \[BUG] attachment steps are not hidden inside expect.toHaveScreenshot() ##### Browser Versions - Chromium 115.0.5790.13 - Mozilla Firefox 113.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 114 - Microsoft Edge 114 ### [`v1.35.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.35.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.34.3...v1.35.0) ##### Highlights - UI mode is now available in VSCode Playwright extension via a new "Show trace viewer" button: ![Playwright UI Mode](https://togithub.com/microsoft/playwright/assets/746130/13094128-259b-477a-8bbb-c1181178e8a2) - UI mode and trace viewer mark network requests handled with [`page.route()`](https://playwright.dev/docs/api/class-page#page-route) and [`browserContext.route()`](https://playwright.dev/docs/api/class-browsercontext#browser-context-route) handlers, as well as those issued via the [API testing](https://playwright.dev/docs/api-testing): ![Trace Viewer](https://togithub.com/microsoft/playwright/assets/746130/0df2d4b6-faa3-465c-aff3-c435b430bfe1) - New option `maskColor` for methods [`page.screenshot()`](https://playwright.dev/docs/api/class-page#page-screenshot), [`locator.screenshot()`](https://playwright.dev/docs/api/class-locator#locator-screenshot), [`expect(page).toHaveScreenshot()`](https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-screenshot-1) and [`expect(locator).toHaveScreenshot()`](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-screenshot-1) to change default masking color: ```js await page.goto('https://playwright.dev'); await expect(page).toHaveScreenshot({ mask: [page.locator('img')], maskColor: '#​00FF00', // green }); ``` - New `uninstall` CLI command to uninstall browser binaries: ```bash $ npx playwright uninstall # remove browsers installed by this installation $ npx playwright uninstall --all # remove all ever-install Playwright browsers ``` - Both UI mode and trace viewer now could be opened in a browser tab: ```bash $ npx playwright test --ui-port 0 # open UI mode in a tab on a random port $ npx playwright show-trace --port 0 # open trace viewer in tab on a random port ``` #####⚠️ Breaking changes - `playwright-core` binary got renamed from `playwright` to `playwright-core`. So if you use `playwright-core` CLI, make sure to update the name: ```bash $ npx playwright-core install # the new way to install browsers when using playwright-core ``` This change **does not** affect `@playwright/test` and `playwright` package users. ##### Browser Versions - Chromium 115.0.5790.13 - Mozilla Firefox 113.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 114 - Microsoft Edge 114 ### [`v1.34.3`](https://togithub.com/microsoft/playwright/releases/tag/v1.34.3) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.34.2...v1.34.3) #### Highlights [https://github.com/microsoft/playwright/issues/23228](https://togithub.com/microsoft/playwright/issues/23228) - \[BUG] Getting "Please install [@​playwright/test](https://togithub.com/playwright/test) package..." after upgrading from 1.34.0 to 1.34.1 #### Browser Versions - Chromium 114.0.5735.26 - Mozilla Firefox 113.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 113 - Microsoft Edge 113 ### [`v1.34.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.34.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.34.1...v1.34.2) #### Highlights [https://github.com/microsoft/playwright/issues/23225](https://togithub.com/microsoft/playwright/issues/23225) - \[BUG] VSCode Extension broken with Playwright 1.34.1 #### Browser Versions - Chromium 114.0.5735.26 - Mozilla Firefox 113.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 113 - Microsoft Edge 113 ### [`v1.34.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.34.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.34.0...v1.34.1) #### Highlights [https://github.com/microsoft/playwright/issues/23186](https://togithub.com/microsoft/playwright/issues/23186) - \[BUG] Container image for v1.34.0 missing library for webkit[https://github.com/microsoft/playwright/issues/23206](https://togithub.com/microsoft/playwright/issues/23206)6 - \[BUG] Unable to install supported browsers for v1.34.0 from playwright-cor[https://github.com/microsoft/playwright/issues/23207](https://togithub.com/microsoft/playwright/issues/23207)07 - \[BUG] importing ES Module JSX component is broken since 1.34 #### Browser Versions - Chromium 114.0.5735.26 - Mozilla Firefox 113.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 113 - Microsoft Edge 113 ### [`v1.34.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.34.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.33.0...v1.34.0) ##### Highlights - UI Mode now shows steps, fixtures and attachments: <img src="https://github.com/microsoft/playwright/assets/746130/1d280419-d79a-4a56-b2dc-54d631281d56" width=640> - New property [`testProject.teardown`](https://playwright.dev/docs/api/class-testproject#test-project-teardown) to specify a project that needs to run after this and all dependent projects have finished. Teardown is useful to cleanup any resources acquired by this project. A common pattern would be a `setup` dependency with a corresponding `teardown`: ```js // playwright.config.ts import { defineConfig } from '@​playwright/test'; export default defineConfig({ projects: [ { name: 'setup', testMatch: /global.setup\.ts/, teardown: 'teardown', }, { name: 'teardown', testMatch: /global.teardown\.ts/, }, { name: 'chromium', use: devices['Desktop Chrome'], dependencies: ['setup'], }, { name: 'firefox', use: devices['Desktop Firefox'], dependencies: ['setup'], }, { name: 'webkit', use: devices['Desktop Safari'], dependencies: ['setup'], }, ], }); ``` - New method [`expect.configure`](https://playwright.dev/docs/test-assertions#expectconfigure) to create pre-configured expect instance with its own defaults such as `timeout` and `soft`. ```js const slowExpect = expect.configure({ timeout: 10000 }); await slowExpect(locator).toHaveText('Submit'); // Always do soft assertions. const softExpect = expect.configure({ soft: true }); ``` - New options `stderr` and `stdout` in [`testConfig.webServer`](https://playwright.dev/docs/api/class-testconfig#test-config-web-server) to configure output handling: ```js // playwright.config.ts import { defineConfig } from '@​playwright/test'; export default defineConfig({ // Run your local dev server before starting the tests webServer: { command: 'npm run start', url: 'http://127.0.0.1:3000', reuseExistingServer: !process.env.CI, stdout: 'pipe', stderr: 'pipe', }, }); ``` - New [`locator.and()`](https://playwright.dev/docs/api/class-locator#locator-and) to create a locator that matches both locators. ```js const button = page.getByRole('button').and(page.getByTitle('Subscribe')); ``` - New events [`browserContext.on('console')`](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-console) and [`browserContext.on('dialog')`](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-dialog) to subscribe to any dialogs and console messages from any page from the given browser context. Use the new methods [`consoleMessage.page()`](https://playwright.dev/docs/api/class-consolemessage#console-message-page) and [`dialog.page()`](https://playwright.dev/docs/api/class-dialog#dialog-page) to pin-point event source. #####⚠️ Breaking changes - `npx playwright test` no longer works if you install both `playwright` and `@playwright/test`. There's no need to install both, since you can always import browser automation APIs from `@playwright/test` directly: ```js // automation.ts import { chromium, firefox, webkit } from '@​playwright/test'; /* ... */ ``` - Node.js 14 is no longer supported since it [reached its end-of-life](https://nodejs.dev/en/about/releases/) on April 30, 2023. ##### Browser Versions - Chromium 114.0.5735.26 - Mozilla Firefox 113.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 113 - Microsoft Edge 113 ### [`v1.33.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.33.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.32.3...v1.33.0) ##### Locators Update - Use [`locator.or()`][locator.or()] to 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: ```js const newEmail = page.getByRole('button', { name: 'New' }); const dialog = page.getByText('Confirm security settings'); await expect(newEmail.or(dialog)).toBeVisible(); if (await dialog.isVisible()) await page.getByRole('button', { name: 'Dismiss' }).click(); await newEmail.click(); ``` - Use new options `hasNot` and `hasNotText` in [`locator.filter()`][locator.filter()] to find elements that **do not match** certain conditions. ```js const rowLocator = page.locator('tr'); await rowLocator .filter({ hasNotText: 'text in column 1' }) .filter({ hasNot: page.getByRole('button', { name: 'column 2 button' }) }) .screenshot(); ``` - Use new web-first assertion [`locatorAssertions.toBeAttached()`][locatorAssertions.toBeAttached()] to ensure that the element is present in the page's DOM. Do not confuse with the [`locatorAssertions.toBeVisible()`][locatorAssertions.toBeVisible()] that ensures that element is both attached & visible. ##### New APIs - [`locator.or()`][locator.or()] - New option `hasNot` in [`locator.filter()`][locator.filter()] - New option `hasNotText` in [`locator.filter()`][locator.filter()] - [`locatorAssertions.toBeAttached()`][locatorAssertions.toBeAttached()] - New option `timeout` in [`route.fetch()`][route.fetch()] - [`reporter.onExit()`][reporter.onExit()] #####⚠️ Breaking change - The `mcr.microsoft.com/playwright:v1.33.0` now serves a Playwright image based on Ubuntu Jammy. To use the focal-based image, please use `mcr.microsoft.com/playwright:v1.33.0-focal` instead. ##### Browser Versions - Chromium 113.0.5672.53 - Mozilla Firefox 112.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 112 - Microsoft Edge 112 [`locator.or()`]: https://playwright.dev/docs/api/class-locator#locator-or [`reporter.onExit()`]: https://playwright.dev/docs/api/class-reporter#reporter-on-exit [`locator.filter()`]: https://playwright.dev/docs/api/class-locator#locator-filter [`locatorAssertions.toBeAttached()`]: https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-attached [`locatorAssertions.toBeVisible()`]: https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-visible [`route.fetch()`]: https://playwright.dev/docs/api/class-route#route-fetch ### [`v1.32.3`](https://togithub.com/microsoft/playwright/releases/tag/v1.32.3) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.32.2...v1.32.3) ##### Highlights [https://github.com/microsoft/playwright/issues/22144](https://togithub.com/microsoft/playwright/issues/22144) - \[BUG] WebServer only starting after timeout[https://github.com/microsoft/playwright/pull/22191](https://togithub.com/microsoft/playwright/pull/22191)1 - chore: allow reusing browser between the tests[https://github.com/microsoft/playwright/issues/22215](https://togithub.com/microsoft/playwright/issues/22215)5 - \[BUG] Tests failing in toPass often marked as passed ##### Browser Versions - Chromium 112.0.5615.29 - Mozilla Firefox 111.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 111 - Microsoft Edge 111 ### [`v1.32.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.32.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.32.1...v1.32.2) ##### Highlights [https://github.com/microsoft/playwright/issues/21993](https://togithub.com/microsoft/playwright/issues/21993) - \[BUG] Browser crash when using Playwright VSC extension and trace-viewer enabled in config[https://github.com/microsoft/playwright/issues/22003](https://togithub.com/microsoft/playwright/issues/22003)3 - \[Feature] Make Vue component mount props less restrictiv[https://github.com/microsoft/playwright/issues/22089](https://togithub.com/microsoft/playwright/issues/22089)89 - \[REGRESSION]: Tests failing with "Error: tracing.stopChunk" ##### Browser Versions - Chromium 112.0.5615.29 - Mozilla Firefox 111.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 111 - Microsoft Edge 111 ### [`v1.32.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.32.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.32.0...v1.32.1) ##### Highlights [https://github.com/microsoft/playwright/issues/21832](https://togithub.com/microsoft/playwright/issues/21832) - \[BUG] Trace is not opening on specific broken locator[https://github.com/microsoft/playwright/issues/21897](https://togithub.com/microsoft/playwright/issues/21897)7 - \[BUG] --ui fails to open with error reading mainFrame from an undefined this.\_pa[https://github.com/microsoft/playwright/issues/21918](https://togithub.com/microsoft/playwright/issues/21918)918 - \[BUG]: UI mode, skipped tests not being fo[https://github.com/microsoft/playwright/issues/21941](https://togithub.com/microsoft/playwright/issues/21941)1941 - \[BUG] UI mode does not show webServer startup er[https://github.com/microsoft/playwright/issues/21953](https://togithub.com/microsoft/playwright/issues/21953)21953 - \[BUG] Parameterized tests are not displayed in the UI mode ##### Browser Versions - Chromium 112.0.5615.29 - Mozilla Firefox 111.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 111 - Microsoft Edge 111 ### [`v1.32.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.32.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.31.2...v1.32.0) ##### 📣 Introducing UI Mode (preview) <a href="https://www.youtube.com/watch?v=jF0yA-JLQW0"><img src="https://user-images.githubusercontent.com/746130/227044467-b4db82dc-c7fa-40d7-a0c8-8f702581c3b9.png" width=340></a> <a href="https://www.youtube.com/watch?v=jF0yA-JLQW0">Playwright v1.32 updates</a> New UI Mode lets you explore, run and debug tests. Comes with a built-in watch mode. ![Playwright UI Mode](https://user-images.githubusercontent.com/746130/227004851-3901a691-4f8e-43d6-8d6b-cbfeafaeb999.png) Engage with a new flag `--ui`: ```sh npx playwright test --ui ``` ##### New APIs - New options `option: updateMode` and `option: updateContent` in [`page.routeFromHAR()`](https://playwright.dev/docs/api/class-page#page-route-from-har) and [`browserContext.routeFromHAR()`](https://playwright.dev/docs/api/class-browsercontext#browser-context-route-from-har). - Chaining existing locator objects, see [locator docs](https://playwright.dev/docs/locators#chaining-locators) for details. - New property [`TestInfo.testId`](https://playwright.dev/docs/api/class-testinfo#test-info-test-id). - New option `name` in method [`Tracing.startChunk()`](https://playwright.dev/docs/api/class-tracing#tracing-start-chunk). #####⚠️ Breaking change in component tests Note: **component tests only**, does not affect end-to-end tests. - `@playwright/experimental-ct-react` now supports **React 18 only**. - If you're running component tests with React 16 or 17, please replace `@playwright/experimental-ct-react` with `@playwright/experimental-ct-react17`. ##### Browser Versions - Chromium 112.0.5615.29 - Mozilla Firefox 111.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 111 - Microsoft Edge 111 ### [`v1.31.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.31.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.31.1...v1.31.2) #### Highlights [https://github.com/microsoft/playwright/issues/20784](https://togithub.com/microsoft/playwright/issues/20784) - \[BUG] ECONNREFUSED on GitHub Actions with Node 18[https://github.com/microsoft/playwright/issues/21145](https://togithub.com/microsoft/playwright/issues/21145)5 - \[REGRESSION]: firefox-1378 times out on await page.reload() when URL contains a #has[https://github.com/microsoft/playwright/issues/21226](https://togithub.com/microsoft/playwright/issues/21226)26 - \[BUG] Playwright seems to get stuck when using shard option and last test is skipp[https://github.com/microsoft/playwright/issues/21227](https://togithub.com/microsoft/playwright/issues/21227)227 - Using the webServer config with a Vite dev serve[https://github.com/microsoft/playwright/issues/21312](https://togithub.com/microsoft/playwright/issues/21312)312 - throw if defineConfig is not used for component testing #### Browser Versions - Chromium 111.0.5563.19 - Mozilla Firefox 109.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 110 - Microsoft Edge 110 ### [`v1.31.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.31.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.31.0...v1.31.1) #### Highlights [https://github.com/microsoft/playwright/issues/21093](https://togithub.com/microsoft/playwright/issues/21093) - \[Regression v1.31] Headless Windows shows cascading cmd windows[https://github.com/microsoft/playwright/pull/21106](https://togithub.com/microsoft/playwright/pull/21106)6 - fix(loader): experimentalLoader with node@18 #### Browser Versions - Chromium 111.0.5563.19 - Mozilla Firefox 109.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 110 - Microsoft Edge 110 ### [`v1.31.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.31.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.30.0...v1.31.0) #### New APIs - New property [`TestProject.dependencies`](https://playwright.dev/docs/api/class-testproject#test-project-dependencies) to configure dependencies between projects. Using dependencies allows global setup to produce traces and other artifacts, see the setup steps in the test report and more. ```js // playwright.config.ts import { defineConfig } from '@​playwright/test'; export default defineConfig({ projects: [ { name: 'setup', testMatch: /global.setup\.ts/, }, { name: 'chromium', use: devices['Desktop Chrome'], dependencies: ['setup'], }, { name: 'firefox', use: devices['Desktop Firefox'], dependencies: ['setup'], }, { name: 'webkit', use: devices['Desktop Safari'], dependencies: ['setup'], }, ], }); ``` - New assertion [`expect(locator).toBeInViewport()`](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-in-viewport) ensures that locator points to an element that intersects viewport, according to the [intersection observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). ```js const button = page.getByRole('button'); // Make sure at least some part of element intersects viewport. await expect(button).toBeInViewport(); // Make sure element is fully outside of viewport. await expect(button).not.toBeInViewport(); // Make sure that at least half of the element intersects viewport. await expect(button).toBeInViewport({ ratio: 0.5 }); ``` #### Miscellaneous - DOM snapshots in trace viewer can be now opened in a separate window. - New method `defineConfig` to be used in `playwright.config`. - New option `maxRedirects` for method [`Route.fetch`](https://playwright.dev/docs/api/class-route#route-fetch). - Playwright now supports Debian 11 arm64. - Official [docker images](https://playwright.dev/docs/docker) now include Node 18 instead of Node 16. ####⚠️ Breaking change in component tests Note: **component tests only**, does not affect end-to-end tests. `playwright-ct.config` configuration file for [component testing](https://playwright.dev/docs/test-components) now requires calling `defineConfig`. ```js // Before import { type PlaywrightTestConfig, devices } from '@​playwright/experimental-ct-react'; const config: PlaywrightTestConfig = { // ... config goes here ... }; export default config; ``` Replace `config` variable definition with `defineConfig` call: ```js // After import { defineConfig, devices } from '@​playwright/experimental-ct-react'; export default defineConfig({ // ... config goes here ... }); ``` #### Browser Versions - Chromium 111.0.5563.19 - Mozilla Firefox 109.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 110 - Microsoft Edge 110 ### [`v1.30.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.30.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.29.2...v1.30.0) ##### 🎉 Happy New Year 🎉 Maintenance release with bugfixes and new browsers only. We are baking some nice features for v1.31. ##### Browser Versions - Chromium 110.0.5481.38 - Mozilla Firefox 108.0.2 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 109 - Microsoft Edge 109 ### [`v1.29.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.29.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.29.1...v1.29.2) #### Highlights [https://github.com/microsoft/playwright/issues/19661](https://togithub.com/microsoft/playwright/issues/19661) - \[BUG] 1.29.1 browserserver + page.goto = net::ERR_SOCKS_CONNECTION_FAILED #### Browser Versions - Chromium 109.0.5414.46 - Mozilla Firefox 107.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 108 - Microsoft Edge 108 ### [`v1.29.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.29.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.29.0...v1.29.1) #### Highlights [https://github.com/microsoft/playwright/issues/18928](https://togithub.com/microsoft/playwright/issues/18928) - \[BUG] Electron firstWindow times out after upgrading to 1.28.0[https://github.com/microsoft/playwright/issues/19246](https://togithub.com/microsoft/playwright/issues/19246)6 - \[BUG] Electron firstWindow times out after upgrading to 1.28.[https://github.com/microsoft/playwright/issues/19412](https://togithub.com/microsoft/playwright/issues/19412)12 - \[REGRESSION]: 1.28 does not work with electron-serve anymor[https://github.com/microsoft/playwright/issues/19540](https://togithub.com/microsoft/playwright/issues/19540)540 - \[BUG] electron.app.getAppPath() returns the path one level higher if you run electron pointing to the direct[https://github.com/microsoft/playwright/issues/19548](https://togithub.com/microsoft/playwright/issues/19548)9548 - \[REGRESSION]: Ubuntu 18 LTS not supported anymore #### Browser Versions - Chromium 109.0.5414.46 - Mozilla Firefox 107.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 108 - Microsoft Edge 108 ### [`v1.29.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.29.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.28.1...v1.29.0) #### New APIs - New method [`route.fetch()`](https://playwright.dev/docs/api/class-route#route-fetch) and new option `json` for [`route.fulfill()`](https://playwright.dev/docs/api/class-route#route-fulfill): ```js await page.route('**/api/settings', async route => { // Fetch original settings. const response = await route.fetch(); // Force settings theme to a predefined value. const json = await response.json(); json.theme = 'Solorized'; // Fulfill with modified data. await route.fulfill({ json }); }); ``` - New method [`locator.all()`](https://playwright.dev/docs/api/class-locator#locator-all) to iterate over all matching elements: ```js // Check all checkboxes! const checkboxes = page.getByRole('checkbox'); for (const checkbox of await checkboxes.all()) await checkbox.check(); ``` - [`Locator.selectOption`](https://playwright.dev/docs/api/class-locator#locator-select-option) matches now by value or label: ```html <select multiple> <option value="red">Red</div> <option value="green">Green</div> <option value="blue">Blue</div> </select> ``` ```js await element.selectOption('Red'); ``` - Retry blocks of code until all assertions pass: ```js await expect(async () => { const response = await page.request.get('https://api.example.com'); await expect(response).toBeOK(); }).toPass(); ``` Read more in [our documentation](https://playwright.dev/docs/test-assertions#retrying). - Automatically capture **full page screenshot** on test failure: ```js // playwright.config.ts import type { PlaywrightTestConfig } from '@​playwright/test'; const config: PlaywrightTestConfig = { use: { screenshot: { mode: 'only-on-failure', fullPage: true, } } }; export default config; ``` #### Miscellaneous - Playwright Test now respects [`jsconfig.json`](https://code.visualstudio.com/docs/languages/jsconfig). - New options `args` and `proxy` for [`androidDevice.launchBrowser()`](https://playwright.dev/docs/api/class-androiddevice#android-device-launch-browser). - Option `postData` in method [`route.continue()`](https://playwright.dev/docs/api/class-route#route-continue) now supports [serializable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#description) values. - Ubuntu 18.04 is not supported anymore #### Browser Versions - Chromium 109.0.5414.46 - Mozilla Firefox 107.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 108 - Microsoft Edge 108 ### [`v1.28.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.28.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.28.0...v1.28.1) #### Highlights This patch release includes the following bug fixes: [https://github.com/microsoft/playwright/issues/18928](https://togithub.com/microsoft/playwright/issues/18928) - \[BUG] Electron firstWindow times out after upgrading to 1.28.0[https://github.com/microsoft/playwright/issues/18920](https://togithub.com/microsoft/playwright/issues/18920)0 - \[BUG] \[expanded=false] in role selector returns elements without aria-expanded attribu[https://github.com/microsoft/playwright/issues/18865](https://togithub.com/microsoft/playwright/issues/18865)865 - \[BUG] regression in killing web server process in 1.28.0 #### Browser Versions - Chromium 108.0.5359.29 - Mozilla Firefox 106.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 107 - Microsoft Edge 107 ### [`v1.28.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.28.0): v1.28 [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.27.1...v1.28.0) #### Playwright Tools - **Record at Cursor in VSCode.** You can run the test, position the cursor at the end of the test and continue generating the test. <img alt="New VSCode Extension" width=600 src="https://user-images.githubusercontent.com/746130/202005839-aba2eeba-217b-424d-8496-8b4f5fa72f41.png"> - **Live Locators in VSCode.** You can hover and edit locators in VSCode to get them highlighted in the opened browser. - **Live Locators in CodeGen.** Generate a locator for any element on the page using "Explore" tool. <img alt="Locator Explorer" src="https://user-images.githubusercontent.com/746130/201796876-01567a0b-ca61-4a9d-b12b-04786c471671.png" width=600> - **Codegen and Trace Viewer Dark Theme.** Automatically picked up from operating system settings. <img alt="Dark Theme" src="https://user-images.githubusercontent.com/746130/201797969-603f74df-d7cf-4c56-befd-798dbd269796.png" width=600> ##### Test Runner - Configure retries and test timeout for a file or a test with [`test.describe.configure([options])`](https://playwright.dev/docs/api/class-test#test-describe-configure). ```js // Each test in the file will be retried twice and have a timeout of 20 seconds. test.describe.configure({ retries: 2, timeout: 20_000 }); test('runs first', async ({ page }) => {}); test('runs second', async ({ page }) => {}); ``` - Use [`testProject.snapshotPathTemplate`](https://playwright.dev/docs/api/class-testproject#test-project-snapshot-path-template) and [`testConfig.snapshotPathTemplate`](https://playwright.dev/docs/api/class-testconfig#test-config-snapshot-path-template) to configure a template controlling location of snapshots generated by [`expect(page).toHaveScreenshot(name[, options])`](https://playwright.dev/docs/test-assertions#page-assertions-to-have-screenshot-1) and [`expect(screenshot).toMatchSnapshot(name[, options])`](https://playwright.dev/docs/test-assertions#screenshot-assertions-to-match-snapshot-1). ```js // playwright.config.ts import type { PlaywrightTestConfig } from '@​playwright/test'; const config: PlaywrightTestConfig = { testDir: './tests', snapshotPathTemplate: '{testDir}/__screenshots__/{testFilePath}/{arg}{ext}', }; export default config; ``` ##### New APIs - [`locator.blur([options])`](https://playwright.dev/docs/api/class-locator#locator-blur) - [`locator.clear([options])`](https://playwright.dev/docs/api/class-locator#locator-clear) - [`android.launchServer([options])`](https://playwright.dev/docs/api/class-android#android-launch-server) and [`android.connect(wsEndpoint[, options])`](https://playwright.dev/docs/api/class-android#android-connect) - [`androidDevice.on('close')`](https://playwright.dev/docs/api/class-androiddevice#android-device-event-close) ##### Browser Versions - Chromium 108.0.5359.29 - Mozilla Firefox 106.0 - WebKit 16.4 This version was also tested against the following stable channels: - Google Chrome 107 - Microsoft Edge 107 </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. --- - [ ] <!-- rebase-check -->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/quirrel-dev/quirrel). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNi4yIiwidXBkYXRlZEluVmVyIjoiMzUuMTMxLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- Loading branch information