-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] regression in killing web server process in 1.28.0 #18865
Comments
Hey @benmccann, We now send the |
Actually, could be related to this: pnpm/pnpm#2653 |
I've come up with a simpler reproduction and updated the issue description. I was able to reproduce this with npm, so it's probably not related to pnpm. The reproduction is using It's possible that both web servers have the same issue dealing with SIGTERM, but I'm not that familiar with how I'd test it and whether it might be any better with another server like |
changing from SIGKILL to SIGTERM is a breaking change in my opinion. This is no longer ending child processes by default and relies on the started process to handle SIGTERM to end children as well. A backward-compatible way to introduce this would be to have the signal as an option, default to SIGKILL until the next major and flip it then, allowing users to still use SIGKILL if their server process isn't handling SIGTERM. sidenote: even SIGKILL can be problematic still, i have run into situations where that wasn't enough and resorted to use tree-kill on the process pid to ensure everything is gone. https://github.com/sveltejs/vite-plugin-svelte/blob/90ff974fb81c7fff05f5e6e4ae1497a24d3078c4/packages/e2e-tests/e2e-server.js#L118 |
+1 for treeKill by default. Kill it all with fire |
…microsoft#18564)" This reverts commit 26044c1. Fixes microsoft#18865
…microsoft#18564)" (microsoft#18968) This reverts commit 26044c1. Fixes microsoft#18865
…bserver as a new process group" This reverts commit 26044c1 (PR microsoft#18564) Fixes microsoft#18865
[![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.28.0` -> `1.28.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.28.0/1.28.1) | [![age](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/compatibility-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/confidence-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | | [playwright](https://playwright.dev) ([source](https://togithub.com/Microsoft/playwright)) | [`1.28.0` -> `1.28.1`](https://renovatebot.com/diffs/npm/playwright/1.28.0/1.28.1) | [![age](https://badges.renovateapi.com/packages/npm/playwright/1.28.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/playwright/1.28.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/playwright/1.28.1/compatibility-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/playwright/1.28.1/confidence-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>Microsoft/playwright</summary> ### [`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 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **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 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://app.renovatebot.com/dashboard#github/defenseunicorns/zarf). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4zMC40IiwidXBkYXRlZEluVmVyIjoiMzQuMzAuNCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![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.15.2` -> `1.28.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.15.2/1.28.1) | [![age](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/compatibility-slim/1.15.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/confidence-slim/1.15.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>Microsoft/playwright</summary> ### [`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 ### [`v1.27.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.27.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.27.0...v1.27.1) #### Highlights This patch release includes the following bug fixes: [https://github.com/microsoft/playwright/pull/18010](https://togithub.com/microsoft/playwright/pull/18010) - fix(generator): generate nice locators for arbitrary selectors [https://github.com/microsoft/playwright/pull/17999](https://togithub.com/microsoft/playwright/pull/17999) - chore: don't fail on undefined video/trace [https://github.com/microsoft/playwright/issues/17955](https://togithub.com/microsoft/playwright/issues/17955) - \[Question] Github Actions test compatibility check failed mitigation?[https://github.com/microsoft/playwright/issues/17960](https://togithub.com/microsoft/playwright/issues/17960)0 - \[BUG] Codegen 1.27 creates NUnit code that does not compil[https://github.com/microsoft/playwright/pull/17952](https://togithub.com/microsoft/playwright/pull/17952)52 - fix: fix typo in treeitem role typing #### Browser Versions - Chromium 107.0.5304.18 - Mozilla Firefox 105.0.1 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 106 - Microsoft Edge 106 ### [`v1.27.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.27.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.26.1...v1.27.0) ##### Locators With these new APIs, inspired by [Testing Library](https://testing-library.com/), writing locators is a joy: - [`page.getByText(text, options)`](https://playwright.dev/docs/api/class-page#page-get-by-text) to locate by text content. - [`page.getByRole(role, options)`](https://playwright.dev/docs/api/class-page#page-get-by-role) to locate by [ARIA role](https://www.w3.org/TR/wai-aria-1.2/#roles), [ARIA attributes](https://www.w3.org/TR/wai-aria-1.2/#aria-attributes) and [accessible name](https://w3c.github.io/accname/#dfn-accessible-name). - [`page.getByLabel(label, options)`](https://playwright.dev/docs/api/class-page#page-get-by-label) to locate a form control by associated label's text. - [`page.getByPlaceholder(placeholder, options)`](https://playwright.dev/docs/api/class-page#page-get-by-placeholder) to locate an input by placeholder. - [`page.getByAltText(altText, options)`](https://playwright.dev/docs/api/class-page#page-get-by-alt-text) to locate an element, usually image, by its text alternative. - [`page.getByTitle(title, options)`](https://playwright.dev/docs/api/class-page#page-get-by-title) to locate an element by its title. ```js await page.getByLabel('User Name').fill('John'); await page.getByLabel('Password').fill('secret-password'); await page.getByRole('button', { name: 'Sign in' }).click(); await expect(page.getByText('Welcome, John!')).toBeVisible(); ``` All the same methods are also available on [Locator](https://playwright.dev/docs/api/class-locator), [FrameLocator](https://playwright.dev/docs/api/class-framelocator) and [Frame](https://playwright.dev/docs/api/class-frame) classes. ##### Other highlights - `workers` option in the `playwright.config.ts` now accepts a percentage string to use some of the available CPUs. You can also pass it in the command line: ```bash npx playwright test --workers=20% ``` - New options `host` and `port` for the html reporter. ```js reporters: [['html', { host: 'localhost', port: '9223' }]] ``` - New field `FullConfig.configFile` is available to test reporters, specifying the path to the config file if any. - As announced in v1.25, Ubuntu 18 will not be supported as of Dec 2022. In addition to that, there will be no WebKit updates on Ubuntu 18 starting from the next Playwright release. ##### Behavior Changes - [`expect(locator).toHaveAttribute(name, value, options)`](https://playwright.dev/docs/test-assertions#locator-assertions-to-have-attribute) with an empty value does not match missing attribute anymore. For example, the following snippet will succeed when `button` **does not** have a `disabled` attribute. ```js await expect(page.getByRole('button')).toHaveAttribute('disabled', ''); ``` - Command line options `--grep` and `--grep-invert` previously incorrectly ignored `grep` and `grepInvert` options specified in the config. Now all of them are applied together. - JSON reporter path resolution is performed relative to the config directory instead of the current working directory: ```js ["json", { outputFile: "./test-results/results.json" }]] ``` ##### Browser Versions - Chromium 107.0.5304.18 - Mozilla Firefox 105.0.1 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 106 - Microsoft Edge 106 ### [`v1.26.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.26.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.26.0...v1.26.1) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/17500](https://togithub.com/microsoft/playwright/issues/17500) - \[BUG] No tests found using the test explorer - pw/[email protected] #### Browser Versions - Chromium 106.0.5249.30 - Mozilla Firefox 104.0 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 105 - Microsoft Edge 105 ### [`v1.26.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.26.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.25.2...v1.26.0) #### Assertions - New option enabled for [`expect(locator).toBeEnabled([options])`](https://playwright.dev/docs/test-assertions#locator-assertions-to-be-enabled). - [`expect(locator).toHaveText(expected[, options])`](https://playwright.dev/docs/test-assertions#locator-assertions-to-have-text) now pierces open shadow roots. - New option editable for [`expect(locator).toBeEditable([options])`](https://playwright.dev/docs/test-assertions#locator-assertions-to-be-editable). - New option visible for [`expect(locator).toBeVisible([options])`](https://playwright.dev/docs/test-assertions#locator-assertions-to-be-visible). #### Other Highlights - New option `maxRedirects` for [`apiRequestContext.get(url[, options])`](https://playwright.dev/docs/api/class-apirequestcontext#api-request-context-get) and others to limit redirect count. - New command-line flag `--pass-with-no-tests` that allows the test suite to pass when no files are found. - New command-line flag `--ignore-snapshots` to skip snapshot expectations, such as `expect(value).toMatchSnapshot()` and `expect(page).toHaveScreenshot()`. #### Behavior Change A bunch of Playwright APIs already support the waitUntil: 'domcontentloaded' option. For example: ```ts await page.goto('https://playwright.dev', { waitUntil: 'domcontentloaded', }); ``` Prior to 1.26, this would wait for all iframes to fire the `DOMContentLoaded` event. To align with web specification, the `'domcontentloaded'` value only waits for the target frame to fire the `'DOMContentLoaded'` event. Use `waitUntil: 'load'` to wait for all iframes. #### Browser Versions - Chromium 106.0.5249.30 - Mozilla Firefox 104.0 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 105 - Microsoft Edge 105 ### [`v1.25.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.25.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.25.1...v1.25.2) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/16937](https://togithub.com/microsoft/playwright/issues/16937) - \[REGRESSION]: session storage failing >= 1.25.0 in firefox[https://github.com/microsoft/playwright/issues/16955](https://togithub.com/microsoft/playwright/issues/16955)5 - Not using channel on config file when Show and Reuse browser is checked #### Browser Versions - Chromium 105.0.5195.19 - Mozilla Firefox 103.0 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 104 - Microsoft Edge 104 ### [`v1.25.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.25.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.25.0...v1.25.1) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/16319](https://togithub.com/microsoft/playwright/issues/16319) - \[BUG] webServer.command esbuild fails with ESM and Yarn[https://github.com/microsoft/playwright/issues/16460](https://togithub.com/microsoft/playwright/issues/16460)0 - \[BUG] Component test fails on 2nd run when SSL is use[https://github.com/microsoft/playwright/issues/16665](https://togithub.com/microsoft/playwright/issues/16665)65 - \[BUG] custom selector engines don't work when running in debug mode #### Browser Versions - Chromium 105.0.5195.19 - Mozilla Firefox 103.0 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 104 - Microsoft Edge 104 ### [`v1.25.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.25.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.24.2...v1.25.0) #### VSCode Extension - **New Playwright actions view** <img width="246" alt="Playwright actions" src="https://user-images.githubusercontent.com/883973/184041259-812722f2-26e3-4561-a972-a1c7973f1332.png"> - **Pick selector** You can pick selector right from a live page, before or after running a test <img width="660" alt="Pick selector" src="https://user-images.githubusercontent.com/883973/184041462-288b9458-1650-4789-bd9e-b60d2ccd11dc.png"> - **Record new test** Start recording where you left off with the new 'Record new test' feature. - **Show & reuse browser** Watch your tests running live & keep devtools open. Develop while continuously running tests. <img width="660" alt="extension screenshot" src="https://user-images.githubusercontent.com/746130/184043183-1b3932ec-2ca9-4775-a10e-e6fbb20f9a95.jpg"> #### Test Runner - [`test.step(title, body)`](https://playwright.dev/docs/api/class-test#test-step) now returns the value of the step function: ```ts test('should work', async ({ page }) => { const pageTitle = await test.step('get title', async () => { await page.goto('https://playwright.dev'); return await page.title(); }); console.log(pageTitle); }); ``` - Added [`test.describe.fixme(title, callback)`](https://playwright.dev/docs/api/class-test#test-describe-fixme). - New `'interrupted'` test status. - Enable tracing via CLI flag: `npx playwright test --trace=on`. - New property [`testCase.id`](https://playwright.dev/docs/api/class-testcase#test-case-id) that can be use in reporters as a history ID. #### Announcements - 🎁 We now ship Ubuntu 22.04 Jammy Jellyfish docker image: `mcr.microsoft.com/playwright:v1.25.0-jammy`. - 🪦 This is the last release with macOS 10.15 support (deprecated as of 1.21). - 🪦 This is the last release with Node.js 12 support, we recommend upgrading to Node.js LTS (16). - ⚠️ Ubuntu 18 is now deprecated and will not be supported as of Dec 2022. #### Browser Versions - Chromium 105.0.5195.19 - Mozilla Firefox 103.0 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 104 - Microsoft Edge 104 ### [`v1.24.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.24.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.24.1...v1.24.2) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/15977](https://togithub.com/microsoft/playwright/issues/15977) - \[BUG] test.use of storage state regression in 1.24 #### Browser Versions - Chromium 104.0.5112.48 - Mozilla Firefox 102.0 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 103 - Microsoft Edge 103 ### [`v1.24.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.24.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.24.0...v1.24.1) ##### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/15898](https://togithub.com/microsoft/playwright/issues/15898) - \[BUG] Typescript error: The type for webServer config property (TestConfigWebServer) is not typed correctly[https://github.com/microsoft/playwright/issues/15913](https://togithub.com/microsoft/playwright/issues/15913)3 - \[BUG] hooksConfig is required for mount fixtur[https://github.com/microsoft/playwright/issues/15932](https://togithub.com/microsoft/playwright/issues/15932)32 - \[BUG] - Install MS Edge on CI Fails ##### Browser Versions - Chromium 104.0.5112.48 - Mozilla Firefox 102.0 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 103 - Microsoft Edge 103 ### [`v1.24.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.24.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.23.4...v1.24.0) #### 🌍 Multiple Web Servers in `playwright.config.ts` Launch multiple web servers, databases, or other processes by passing an array of configurations: ```ts // playwright.config.ts import type { PlaywrightTestConfig } from '@​playwright/test'; const config: PlaywrightTestConfig = { webServer: [ { command: 'npm run start', port: 3000, timeout: 120 * 1000, reuseExistingServer: !process.env.CI, }, { command: 'npm run backend', port: 3333, timeout: 120 * 1000, reuseExistingServer: !process.env.CI, } ], use: { baseURL: 'http://localhost:3000/', }, }; export default config; ``` #### 🐂 Debian 11 Bullseye Support Playwright now supports Debian 11 Bullseye on x86\_64 for Chromium, Firefox and WebKit. Let us know if you encounter any issues! Linux support looks like this: | | Ubuntu 18.04 | Ubuntu 20.04 | Ubuntu 22.04 | Debian 11 | :--- | :---: | :---: | :---: | :---: | | Chromium | ✅ | ✅ | ✅ | ✅ | | WebKit | ✅ | ✅ | ✅ | ✅ | | Firefox | ✅ | ✅ | ✅ | ✅ | #### 🕵️ Anonymous Describe It is now possible to call [`test.describe(callback)`](https://playwright.dev/docs/api/class-test#test-describe-2) to create suites without a title. This is useful for giving a group of tests a common option with [`test.use(options)`](https://playwright.dev/docs/api/class-test#test-use). ```ts test.describe(() => { test.use({ colorScheme: 'dark' }); test('one', async ({ page }) => { // ... }); test('two', async ({ page }) => { // ... }); }); ``` #### 🧩 Component Tests Update Playwright 1.24 Component Tests introduce `beforeMount` and `afterMount` hooks. Use these to configure your app for tests. ##### Vue + Vue Router For example, this could be used to setup App router in Vue.js: ```js // src/component.spec.ts import { test } from '@​playwright/experimental-ct-vue'; import { Component } from './mycomponent'; test('should work', async ({ mount }) => { const component = await mount(Component, { hooksConfig: { /* anything to configure your app */ } }); }); ``` ```js // playwright/index.ts import { router } from '../router'; import { beforeMount } from '@​playwright/experimental-ct-vue/hooks'; beforeMount(async ({ app, hooksConfig }) => { app.use(router); }); ``` ##### React + Next.js A similar configuration in Next.js would look like this: ```js // src/component.spec.jsx import { test } from '@​playwright/experimental-ct-react'; import { Component } from './mycomponent'; test('should work', async ({ mount }) => { const component = await mount(<Component></Component>, { // Pass mock value from test into `beforeMount`. hooksConfig: { router: { query: { page: 1, per_page: 10 }, asPath: '/posts' } } }); }); ``` ```js // playwright/index.js import router from 'next/router'; import { beforeMount } from '@​playwright/experimental-ct-react/hooks'; beforeMount(async ({ hooksConfig }) => { // Before mount, redefine useRouter to return mock value from test. router.useRouter = () => hooksConfig.router; }); ``` #### Browser Versions - Chromium 104.0.5112.48 - Mozilla Firefox 102.0 - WebKit 16.0 This version was also tested against the following stable channels: - Google Chrome 103 - Microsoft Edge 103 ### [`v1.23.4`](https://togithub.com/microsoft/playwright/releases/tag/v1.23.4) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.23.3...v1.23.4) #### Highlights This patch includes the following bug fix: [https://github.com/microsoft/playwright/issues/15717](https://togithub.com/microsoft/playwright/issues/15717) - \[REGRESSION]: Suddenly stopped working despite nothing having changed (`experimentalLoader.js:load` did not call the next hook in its chain and did not explicitly signal a short circuit) #### Browser Versions - Chromium 104.0.5112.20 - Mozilla Firefox 100.0.2 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 103 - Microsoft Edge 103 ### [`v1.23.3`](https://togithub.com/microsoft/playwright/releases/tag/v1.23.3) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.23.2...v1.23.3) ##### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/15557](https://togithub.com/microsoft/playwright/issues/15557) - \[REGRESSION]: Event Listeners not being removed if same handler is used for different events ##### Browser Versions - Chromium 104.0.5112.20 - Mozilla Firefox 100.0.2 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 103 - Microsoft Edge 103 ### [`v1.23.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.23.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.23.1...v1.23.2) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/15273](https://togithub.com/microsoft/playwright/issues/15273) - \[BUG] LaunchOptions config has no effect after update to v1.23.0[https://github.com/microsoft/playwright/issues/15351](https://togithub.com/microsoft/playwright/issues/15351)1 - \[REGRESSION]: Component testing project does not compile anymor[https://github.com/microsoft/playwright/issues/15431](https://togithub.com/microsoft/playwright/issues/15431)31 - \[BUG] Regression: page.on('console') is ignored in 1.23 #### Browser Versions - Chromium 104.0.5112.20 - Mozilla Firefox 100.0.2 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 103 - Microsoft Edge 103 ### [`v1.23.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.23.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.23.0...v1.23.1) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/15219](https://togithub.com/microsoft/playwright/issues/15219) - \[REGRESSION]: playwright-core 1.23.0 issue with 'TypeError \[ERR_INVALID_ARG_TYPE]: The "listener" argument' #### Browser Versions - Chromium 104.0.5112.20 - Mozilla Firefox 100.0.2 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 103 - Microsoft Edge 103 ### [`v1.23.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.23.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.22.2...v1.23.0) <a href="https://youtu.be/NRGOV46P3kU"><img src="https://user-images.githubusercontent.com/746130/177854522-a07f4701-9528-4bf9-bf0f-30fbdfb04c8c.png" width=340></a> <a href="https://youtu.be/NRGOV46P3kU">Playwright v1.23 updates</a> #### Network Replay Now you can record network traffic into a HAR file and re-use the data in your tests. To record network into HAR file: ```bash npx playwright open --save-har=github.har.zip https://github.com/microsoft ``` Alternatively, you can record HAR programmatically: ```ts const context = await browser.newContext({ recordHar: { path: 'github.har.zip' } }); // ... do stuff ... await context.close(); ``` Use the new methods [`page.routeFromHAR()`](https://playwright.dev/docs/api/class-page#page-route-from-har) or [`browserContext.routeFromHAR()`](https://playwright.dev/docs/api/class-browsercontext#browser-context-route-from-har) to serve matching responses from the [HAR](http://www.softwareishard.com/blog/har-12-spec/) file: ```ts await context.routeFromHAR('github.har.zip'); ``` Read more in [our documentation](https://playwright.dev/docs/network#record-and-replay-requests). ##### Advanced Routing You can now use [`route.fallback()`](https://playwright.dev/docs/api/class-route#route-fallback) to defer routing to other handlers. Consider the following example: ```ts // Remove a header from all requests. test.beforeEach(async ({ page }) => { await page.route('**/*', route => { const headers = route.request().headers(); delete headers['if-none-match']; route.fallback({ headers }); }); }); test('should work', async ({ page }) => { await page.route('**/*', route => { if (route.request().resourceType() === 'image') route.abort(); else route.fallback(); }); }); ``` Note that the new methods [`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) also participate in routing and could be deferred to. ##### Web-First Assertions Update - New method [`expect(locator).toHaveValues()`](https://playwright.dev/docs/test-assertions#locator-assertions-to-have-values) that asserts all selected values of `<select multiple>` element. - Methods [`expect(locator).toContainText()`](https://playwright.dev/docs/test-assertions#locator-assertions-to-contain-text) and [`expect(locator).toHaveText()`](https://playwright.dev/docs/test-assertions#locator-assertions-to-have-text) now accept `ignoreCase` option. ##### Component Tests Update - Support for Vue2 via the [`@playwright/experimental-ct-vue2`](https://www.npmjs.com/package/@​playwright/experimental-ct-vue2) package. - Support for component tests for [create-react-app](https://www.npmjs.com/package/create-react-app) with components in `.js` files. Read more about [component testing with Playwright](https://playwright.dev/docs/test-components). ##### Miscellaneous - If there's a service worker that's in your way, you can now easily disable it with a new context option [`serviceWorkers`](https://playwright.dev/docs/api/class-browser#browser-new-context-option-service-workers): ```ts // playwright.config.ts export default { use: { serviceWorkers: 'block', } } ``` - Using `.zip` path for [`recordHar`](https://playwright.dev/docs/api/class-browser#browser-new-context-option-record-har) context option automatically zips the resulting HAR: ```ts const context = await browser.newContext({ recordHar: { path: 'github.har.zip', } }); ``` - If you intend to edit HAR by hand, consider using the `"minimal"` HAR recording mode that only records information that is essential for replaying: ```ts const context = await browser.newContext({ recordHar: { path: 'github.har.zip', mode: 'minimal', } }); ``` - Playwright now runs on Ubuntu 22 amd64 and Ubuntu 22 arm64. We also publish new docker image `mcr.microsoft.com/playwright:v1.23.0-focal`. ##### ⚠️ Breaking Changes ⚠️ WebServer is now considered "ready" if request to the specified port has any of the following HTTP status codes: - `200-299` - `300-399` (new) - `400`, `401`, `402`, `403` (new) ### [`v1.22.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.22.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.22.1...v1.22.2) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/14254](https://togithub.com/microsoft/playwright/issues/14254) - \[BUG] focus() function in version 1.22 closes dropdown (not of select type) instead of just focus on the option #### Browser Versions - Chromium 102.0.5005.40 - Mozilla Firefox 99.0.1 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 101 - Microsoft Edge 101 ### [`v1.22.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.22.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.22.0...v1.22.1) ##### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/14186](https://togithub.com/microsoft/playwright/issues/14186) - \[BUG] expect.toHaveScreenshot() generates an argument error ##### Browser Versions - Chromium 102.0.5005.40 - Mozilla Firefox 99.0.1 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 101 - Microsoft Edge 101 ### [`v1.22.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.22.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.21.1...v1.22.0) #### Introducing Component Testing (preview) Playwright Test can now test your [React](https://reactjs.org/), [Vue.js](https://vuejs.org/) or [Svelte](https://svelte.dev/) components. You can use all the features of Playwright Test (such as parallelization, emulation & debugging) while running components in real browsers. <a href="https://youtu.be/y3YxX4sFJbM">![component testing](https://user-images.githubusercontent.com/883973/169662902-deedc95e-12b9-4dfd-b37d-db249910de35.jpg)</a> <a href="https://youtu.be/y3YxX4sFJbM">Component Tests (Preview)</a> Here is what a typical component test looks like: ```tsx // App.spec.tsx import { test, expect } from '@​playwright/experimental-ct-react'; import App from './App'; // Let's test component in a dark scheme! test.use({ colorScheme: 'dark' }); test('should render', async ({ mount }) => { const component = await mount(<App></App>); // As with any Playwright test, assert locator text. await expect(component).toContainText('React'); // Or do a screenshot 🚀 await expect(component).toHaveScreenshot(); // Or use any Playwright method await component.click(); }); ``` Read more in [our documentation](https://playwright.dev/docs/test-components). *** <a href="https://youtu.be/keV2CIgtBlg">![release update](https://user-images.githubusercontent.com/883973/169663011-23156ebf-c5a9-4eea-91bf-06b555dc60e9.jpg)</a> <a href="https://youtu.be/keV2CIgtBlg">Playwright v1.22 updates</a> #### Locators Update - Role selectors allow selecting elements by their [ARIA role](https://www.w3.org/TR/wai-aria-1.2/#roles), [ARIA attributes](https://www.w3.org/TR/wai-aria-1.2/#aria-attributes) and [accessible name](https://w3c.github.io/accname/#dfn-accessible-name). ```ts // Click a button with accessible name "log in" await page.click('role=button[name="log in"]') ``` Read more in [our documentation](https://playwright.dev/docs/selectors#role-selector). - New [`locator.filter([options])`](https://playwright.dev/docs/api/class-locator#locator-filter) API to filter an existing locator ```ts const buttons = page.locator('role=button'); // ... const submitButton = buttons.filter({ hasText: 'Submit' }); await submitButton.click(); ``` #### Screenshots Update New web-first assertions [`expect(page).toHaveScreenshot()`](https://playwright.dev/docs/test-assertions#page-assertions-to-have-screenshot) and [`expect(locator).toHaveScreenshot()`](https://playwright.dev/docs/test-assertions#locator-assertions-to-have-screenshot) that wait for screenshot stabilization and enhances test reliability. The new assertions has screenshot-specific defaults, such as: - disables animations - uses CSS scale option ```ts await page.goto('https://playwright.dev'); await expect(page).toHaveScreenshot(); ``` The new [`expect(page).toHaveScreenshot()`](https://playwright.dev/docs/test-assertions#page-assertions-to-have-screenshot) saves screenshots at the same location as [`expect(screenshot).toMatchSnapshot()`](https://playwright.dev/docs/test-assertions#screenshot-assertions-to-match-snapshot-1). #### Browser Versions - Chromium 102.0.5005.40 - Mozilla Firefox 99.0.1 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 101 - Microsoft Edge 101 ### [`v1.21.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.21.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.21.0...v1.21.1) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/pull/13597](https://togithub.com/microsoft/playwright/pull/13597) - \[BUG] fullyParallel created too many workers, slowing down test run[https://github.com/microsoft/playwright/issues/13530](https://togithub.com/microsoft/playwright/issues/13530)0 - \[REGRESSION]: Pull request [#​12877](https://togithub.com/Microsoft/playwright/issues/12877) prevents the library from being used on any linux distro that is not Ubuntu #### Browser Versions - Chromium 101.0.4951.26 - Mozilla Firefox 98.0.2 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 100 - Microsoft Edge 100 ### [`v1.21.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.21.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.20.2...v1.21.0) <a href="https://youtu.be/45HZdbmgEw8">![release 1.21](https://user-images.githubusercontent.com/883973/169663514-5f93834a-a0cc-49f8-be11-892010f89f09.jpg)</a> <a href="https://youtu.be/45HZdbmgEw8">Playwright v1.21 updates</a> #### Highlights - New **experimental** role selectors that allow selecting elements by their [ARIA role](https://www.w3.org/TR/wai-aria-1.2/#roles), [ARIA attributes](https://www.w3.org/TR/wai-aria-1.2/#aria-attributes) and [accessible name](https://w3c.github.io/accname/#dfn-accessible-name). ```js // Click a button with accessible name "log in" await page.click('role=button[name="log in"]') ``` To use role selectors, make sure to pass `PLAYWRIGHT_EXPERIMENTAL_FEATURES=1` environment variable: ```js // playwright.config.js process.env.PLAYWRIGHT_EXPERIMENTAL_FEATURES = '1'; module.exports = { /* ... */ }; ``` Read more in [our documentation](https://playwright.dev/docs/selectors#role-selector). - New `scale` option in [`Page.screenshot`](https://playwright.dev/docs/api/class-page#page-screenshot) for smaller sized screenshots. - New `caret` option in [`Page.screenshot`](https://playwright.dev/docs/api/class-page#page-screenshot) to control text caret. Defaults to `"hide"`. - New method `expect.poll` to wait for an arbitrary condition: ```js // Poll the method until it returns an expected result. await expect.poll(async () => { const response = await page.request.get('https://api.example.com'); return response.status(); }).toBe(200); ``` `expect.poll` supports most synchronous matchers, like `.toBe()`, `.toContain()`, etc. Read more in [our documentation](https://playwright.dev/docs/test-assertions#polling). #### Behavior Changes - ESM support when running TypeScript tests is now enabled by default. The `PLAYWRIGHT_EXPERIMENTAL_TS_ESM` env variable is no longer required. - The `mcr.microsoft.com/playwright` docker image no longer contains Python. Please use `mcr.microsoft.com/playwright/python` as a Playwright-ready docker image with pre-installed Python. - Playwright now supports large file uploads (100s of MBs) via [`Locator.setInputFiles`](https://playwright.dev/docs/api/class-locator#locator-set-input-files) API. #### Browser Versions - Chromium 101.0.4951.26 - Mozilla Firefox 98.0.2 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 100 - Microsoft Edge 100 ### [`v1.20.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.20.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.20.1...v1.20.2) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/13078](https://togithub.com/microsoft/playwright/issues/13078) - \[BUG] Extension required when importing other files with type="module"[https://github.com/microsoft/playwright/issues/13099](https://togithub.com/microsoft/playwright/issues/13099)9 - \[BUG] beforeAll is called before each test (fullyParallel[https://github.com/microsoft/playwright/issues/13204](https://togithub.com/microsoft/playwright/issues/13204)04 - \[BUG] mask stalls the screenshot #### Browser Versions - Chromium 101.0.4921.0 - Mozilla Firefox 97.0.1 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 99 - Microsoft Edge 99 ### [`v1.20.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.20.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.20.0...v1.20.1) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/12711](https://togithub.com/microsoft/playwright/issues/12711) - \[REGRESSION] Page.screenshot hangs on some sites[https://github.com/microsoft/playwright/issues/12807](https://togithub.com/microsoft/playwright/issues/12807)7 - \[BUG] Cookies get assigned before fulfilling a respons[https://github.com/microsoft/playwright/issues/12814](https://togithub.com/microsoft/playwright/issues/12814)14 - \[Question] how to use expect.any in playwrig[https://github.com/microsoft/playwright/issues/12821](https://togithub.com/microsoft/playwright/issues/12821)821 - \[BUG] Chromium: Cannot click, element intercepts pointer eve[https://github.com/microsoft/playwright/issues/12836](https://togithub.com/microsoft/playwright/issues/12836)2836 - \[REGRESSION]: Tests not detected as ES module in v[https://github.com/microsoft/playwright/issues/12862](https://togithub.com/microsoft/playwright/issues/12862)12862 - \[Feature] Allow to use toMatchSnapshot for file formats other than txt (e.g.[https://github.com/microsoft/playwright/issues/12887](https://togithub.com/microsoft/playwright/issues/12887)/12887 - \[BUG] Locator.count() with \_vue selector wit[https://github.com/microsoft/playwright/issues/12940](https://togithub.com/microsoft/playwright/issues/12940)es/12940 - \[BUG] npm audit - High Severity vulnerability in json5 package forcing to install Playwrigh[https://github.com/microsoft/playwright/issues/12974](https://togithub.com/microsoft/playwright/issues/12974)ues/12974 - \[BUG] Regression - chromium browser closes during test or debugging session on macos #### Browser Versions - Chromium 101.0.4921.0 - Mozilla Firefox 97.0.1 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 99 - Microsoft Edge 99 ### [`v1.20.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.20.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.19.2...v1.20.0) <a href="https://youtu.be/6vV-XXKsrbA">![release-1.20](https://user-images.githubusercontent.com/883973/169663565-0b99510a-cca2-44f6-8c49-60c9569eb0a5.jpg)</a> <a href="https://youtu.be/6vV-XXKsrbA">Playwright v1.20 updates</a> #### Highlights - New options for methods [`page.screenshot()`](https://playwright.dev/docs/api/class-page#page-screenshot), [`locator.screenshot()`](https://playwright.dev/docs/api/class-locator#locator-screenshot) and [`elementHandle.screenshot()`](https://playwright.dev/docs/api/class-elementhandle#element-handle-screenshot): - Option `animations: "disabled"` rewinds all CSS animations and transitions to a consistent state. - Option `mask: Locator[]` masks given elements, overlaying them with pink `#FF00FF` boxes. - [`expect().toMatchSnapshot()`](https://playwright.dev/docs/test-assertions#screenshot-assertions-to-match-snapshot) now supports anonymous snapshots: when snapshot name is missing, Playwright Test will generate one automatically: ```js expect('Web is Awesome <3').toMatchSnapshot(); ``` - New `maxDiffPixels` and `maxDiffPixelRatio` options for fine-grained screenshot comparison using [`expect().toMatchSnapshot()`](https://playwright.dev/docs/test-assertions#screenshot-assertions-to-match-snapshot): ```js expect(await page.screenshot()).toMatchSnapshot({ maxDiffPixels: 27, // allow no more than 27 different pixels. }); ``` It is most convenient to specify `maxDiffPixels` or `maxDiffPixelRatio` once in [`TestConfig.expect`](https://playwright.dev/docs/api/class-testconfig#test-config-expect). - Playwright Test now adds [`TestConfig.fullyParallel`](https://playwright.dev/docs/api/class-testconfig#test-config-fully-parallel) mode. By default, Playwright Test parallelizes between files. In fully parallel mode, tests inside a single file are also run in parallel. You can also use `--fully-parallel` command line flag. ```ts // playwright.config.ts export default { fullyParallel: true, }; ``` - [`TestProject.grep`](https://playwright.dev/docs/api/class-testproject#test-project-grep) and [`TestProject.grepInvert`](https://playwright.dev/docs/api/class-testproject#test-project-grep-invert) are now configurable per project. For example, you can now configure smoke tests project using `grep`: ```ts // playwright.config.ts export default { projects: [ { name: 'smoke tests', grep: /@​smoke/, }, ], }; ``` - [Trace Viewer](https://playwright.dev/docs/trace-viewer) now shows [API testing requests](https://playwright.dev/docs/test-api-testing). - [`locator.highlight()`](https://playwright.dev/docs/api/class-locator#locator-highlight) visually reveals element(s) for easier debugging. #### Announcements - We now ship a designated Python docker image `mcr.microsoft.com/playwright/python`. Please switch over to it if you use Python. This is the last release that includes Python inside our javascript `mcr.microsoft.com/playwright` docker image. - v1.20 is the last release to receive WebKit update for macOS 10.15 Catalina. Please update MacOS to keep using latest & greatest WebKit! #### Browser Versions - Chromium 101.0.4921.0 - Mozilla Firefox 97.0.1 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 99 - Microsoft Edge 99 ### [`v1.19.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.19.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.19.1...v1.19.2) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/12091](https://togithub.com/microsoft/playwright/issues/12091) - \[BUG] playwright 1.19.0 generates more than 1 trace file per test[https://github.com/microsoft/playwright/issues/12106](https://togithub.com/microsoft/playwright/issues/12106)6 - \[BUG] Error: EBUSY: resource busy or locked when using volumes in docker-compose with playwright 1.19.0 and mcr.microsoft.com/playwright:v1.15.0-focal #### Browser Versions - Chromium 100.0.4863.0 - Mozilla Firefox 96.0.1 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 98 - Microsoft Edge 98 ### [`v1.19.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.19.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.19.0...v1.19.1) #### Highlights This patch includes the following bug fixes: [https://github.com/microsoft/playwright/issues/12075](https://togithub.com/microsoft/playwright/issues/12075) - \[Question] After update to 1.19 firefox fails to run[https://github.com/microsoft/playwright/issues/12090](https://togithub.com/microsoft/playwright/issues/12090)0 - \[BUG] did something change on APIRequest/Response APIs ? #### Browser Versions - Chromium 100.0.4863.0 - Mozilla Firefox 96.0.1 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 98 - Microsoft Edge 98 ### [`v1.19.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.19.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.18.1...v1.19.0) <a href="https://youtu.be/z0EOFvlf14U">![release-1.19](https://user-images.githubusercontent.com/883973/169663681-d82de420-fd32-4280-9431-8deea1efd5f3.jpg)</a> <a href="https://youtu.be/z0EOFvlf14U">Playwright v1.19 updates</a> ##### Playwright Test Updates ##### Soft assertions Playwright Test v1.19 now supports **soft assertions**. Failed soft assertions **do not** terminate test execution, but mark the test as failed. Read more in [our documentation](https://playwright.dev/docs/test-assertions#soft-assertions). ```js // Make a few checks that will not stop the test when failed... await expect.soft(page.locator('#status')).toHaveText('Success'); await expect.soft(page.locator('#eta')).toHaveText('1 day'); // ... and continue the test to check more things. await page.locator('#next-page').click(); await expect.soft(page.locator('#title')).toHaveText('Make another order'); ``` ##### Custom error messages You can now specify a [**custom error message**](https://playwright.dev/docs/test-assertions#custom-error-message) as a second argument to the `expect` and `expect.soft` functions, for example: ```js await expect(page.locator('text=Name'), 'should be logged in').toBeVisible(); ``` The error would look like this: ```bash Error: should be logged in Call log: - expect.toBeVisible with timeout 5000ms - waiting for selector "text=Name" 2 | 3 | test('example test', async({ page }) => { > 4 | await expect(page.locator('text=Name'), 'should be logged in').toBeVisible(); | ^ 5 | }); 6 | ``` ##### Parallel mode in file By default, tests in a single file are run in order. If you have many independent tests in a single file, you can now run them in parallel with [`method: test.describe.configure`](https://playwright.dev/docs/api/class-test#test-describe-configure): ```js import { test } from '@​playwright/test'; test.describe.configure({ mode: 'parallel' }); test('parallel 1', async () => {}); test('parallel 2', async () => {}); ``` ##### [⚠️](https://emojipedia.org/warning/#:~:text=A%20triangle%20with%20an%20exclamation,to%20Emoji%201.0%20in%202015.) Potentially breaking change in Playwright Test Global Setup It is unlikely that this change will affect you, no action is required if your tests keep running as they did. We've noticed that in rare cases, the set of tests to be executed was configured in the global setup by means of the environment variables. We also noticed some applications that were post processing the reporters' output in the global teardown. If you are doing one of the two, [learn more](https://togithub.com/microsoft/playwright/issues/12018) ##### Locator Updates ##### Locator now supports a `has` option that makes sure it contains another locator inside: ```js await page.locator('article', { has: page.locator('.highlight'), }).locator('button').click(); ``` The snippet above will select article that has highlight in it and will press the button in it. Read more in [locator documentation](https://playwright.dev/docs/api/class-locator#locator-locator-option-has) ##### Other Updates - New [`method: Locator.page`](https://playwright.dev/docs/api/class-locator#locator-page) - [`method: Page.screenshot`](https://playwright.dev/docs/api/class-page#page-screenshot) and [`method: Locator.screenshot`](https://playwright.dev/docs/api/class-locator#locator-screenshot) now automatically hides blinking caret - Playwright Codegen now generates locators and frame locators - New option `url` in [`testConfig.webServer`](https://playwright.dev/docs/api/class-testconfig#test-config-web-server) to ensure your web server is ready before running the tests - New [`property: TestInfo.errors`](https://playwright.dev/docs/api/class-testinfo#test-info-errors) and [`property: TestResult.errors`](https://playwright.dev/docs/api/class-testresult#test-result-errors) that contain all failed assertions and soft assertions. #### Browser Versions - Chromium 100.0.4863.0 - Mozilla Firefox 96.0.1 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 98 - Microsoft Edge 98 *** ### [`v1.18.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.18.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.18.0...v1.18.1) #### Highlights This patch includes improvements to the TypeScript support and the following bug fixes: [https://github.com/microsoft/playwright/issues/11550](https://togithub.com/microsoft/playwright/issues/11550) - \[REGRESSION]: Errors inside route handler does not lead to unhandled rejections anymore[https://github.com/microsoft/playwright/issues/11552](https://togithub.com/microsoft/playwright/issues/11552)2 - \[BUG] Could not resolve "C:\repo\framework\utils" in file C:\repo\tests\test.ts. #### Browser Versions - Chromium 99.0.4812.0 - Mozilla Firefox 95.0 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 97 - Microsoft Edge 97 ### [`v1.18.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.18.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.17.2...v1.18.0) <a href="https://youtu.be/ABLYpw2BN_g">![release-1.18](https://user-images.githubusercontent.com/883973/169663725-400d1b08-7278-4322-9d42-8e4ec1199a9a.jpg)</a> <a href="https://youtu.be/ABLYpw2BN_g">Playwright v1.18 updates</a> #### Locator Improvements - [`locator.dragTo(locator)`][locator.dragTo(locator)] - [`expect(locator).toBeChecked({ checked })`][expect(locator).toBeChecked({ checked })] - Each locator can now be optionally filtered by the text it contains: ```js await page.locator('li', { hasText: 'my item' }).locator('button').click(); ``` Read more in [locator documentation]. #### Testing API improvements - [`expect(response).toBeOK()`][expect(response).toBeOK()] - [`testInfo.attach()`][testInfo.attach()] - [`test.info()`][test.info()] #### Improved TypeScript Support 1. Playwright Test now respects `tsconfig.json`'s [`baseUrl`](https://www.typescriptlang.org/tsconfig#baseUrl) and [`paths`](https://www.typescriptlang.org/tsconfig#paths), so you can use aliases 2. There is a new environment variable `PW_EXPERIMENTAL_TS_ESM` that allows importing ESM modules in your TS code, without the need for the compile step. Don't forget the `.js` suffix when you are importing your esm modules. Run your tests as follows: ```bash npm i --save-dev @​playwright/[email protected] PW_EXPERIMENTAL_TS_ESM=1 npx playwright test ``` #### Create Playwright The `npm init playwright` command is now generally available for your use: ```sh ### Run from your project's root directory npm init playwright ### Or create a new project npm init playwright new-project ``` This will scaffold everything needed to get started with Playwright Test: configuration file, optionally add examples, a GitHub Action workflow and a first test `example.spec.ts`. #### New APIs & changes - new [`testCase.repeatEachIndex`][testCase.repeatEachIndex] API - [`acceptDownloads`][acceptDownloads] option now defaults to `true` #### Breaking change: custom config options Custom config options are a convenient way to parametrize projects with different values. Learn more in the [parametrization guide]. Previously, any fixture introduced through [`test.extend`][test.extend] could be overridden in the [`testProject.use`][testProject.use] config section. For example, ```js // WRONG: THIS SNIPPET DOES NOT WORK SINCE v1.18. // fixtures.js const test = base.extend({ myParameter: 'default', }); // playwright.config.js module.exports = { use: { myParameter: 'value', }, }; ``` The proper way to make a fixture parametrized in the config file is to specify `option: true` when defining the fixture. For example, ```js // CORRECT: THIS SNIPPET WORKS SINCE v1.18. // fixtures.js const test = base.extend({ // Fixtures marked as "option: true" will get a value specified in the config, // or fallback to the default value. myParameter: ['default', { option: true }], }); // playwright.config.js module.exports = { use: { myParameter: 'value', }, }; ``` #### Browser Versions - Chromium 99.0.4812.0 - Mozilla Firefox 95.0 - WebKit 15.4 This version was also tested against the following stable channels: - Google Chrome 97 - Microsoft Edge 97 *** [`locator.dragTo(locator)`]: https://playwright.dev/docs/api/class-locator#locator-drag-to [`expect(locator).toBeChecked({ checked })`]: https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-checked [locator documentation]: https://playwright.dev/docs/api/class-locator#locator-locator-option-has-text [`expect(response).toBeOK()`]: https://playwright.dev/docs/api/class-apiresponseassertions [`testInfo.attach()`]: https://playwright.dev/docs/api/class-testinfo#test-info-attach [`test.info()`]: https://playwright.dev/docs/api/class-test#test-info [`testCase.repeatEachIndex`]: https://playwright.dev/docs/api/class-testcase#test-case-repeat-each-index [parametrization guide]: https://playwright.dev/docs/test-parameterize#parameterized-projects [`acceptDownloads`]: https://playwright.dev/docs/api/class-browser#browser-new-context-option-accept-downloads [`test.extend`]: https://playwright.dev/docs/api/class-test#test-extend [`testProject.use`]: https://playwright.dev/docs/api/class-testproject#test-project-use (`1.18.0-beta-1642620709000`) ### [`v1.17.2`](https://togithub.com/microsoft/playwright/releases/tag/v1.17.2) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.17.1...v1.17.2) #### Bugfixes [#​11274](https://togithub.com/Microsoft/playwright/issues/11274) - fix: pin colors to 1.4.0 [#​11228](https://togithub.com/Microsoft/playwright/issues/11228) - fix(click): don't fail on stale context while click ### [`v1.17.1`](https://togithub.com/microsoft/playwright/releases/tag/v1.17.1) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.17.0...v1.17.1) #### Highlights This patch includes bug fixes for the following issues: [https://github.com/microsoft/playwright/issues/10638](https://togithub.com/microsoft/playwright/issues/10638) - \[BUG] Locator.click -> subtree intercepts pointer events since version 1.17.0[https://github.com/microsoft/playwright/issues/10632](https://togithub.com/microsoft/playwright/issues/10632)2 - \[BUG] Playwright 1.17.0 -> After clicking the element - I get an error that click action was faile[https://github.com/microsoft/playwright/issues/10627](https://togithub.com/microsoft/playwright/issues/10627)27 - \[REGRESSION]: Can no longer click Material UI select b[https://github.com/microsoft/playwright/issues/10620](https://togithub.com/microsoft/playwright/issues/10620)620 - \[BUG] trailing zero width whitespace fails toHaveText #### Browser Versions - Chromium 98.0.4695.0 - Mozilla Firefox 94.0.1 - WebKit 15.4 This version of Playwright was also tested against the following stable channels: - Google Chrome 96 - Microsoft Edge 96 *** (1.17.1) ### [`v1.17.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.17.0) [Compare Source](https://togithub.com/Microsoft/playwright/compare/v1.16.3...v1.17.0) <a href="https://youtu.be/7iyIdeoAP04">![release-1.17](https://user-images.githubusercontent.com/883973/169663759-f810a03f-6488-436a-835a-21d18bed8fb1.jpg)</a> <a href="https://youtu.be/7iyIdeoAP04">Playwright v1.17 updates</a> #### Frame Locators Playwright 1.17 introduces [frame locators] - a locator to the iframe on the page. Frame locators capture the logic sufficient to retrieve the `iframe` and then locate elements in that iframe. Frame locators are strict by default, will wait for `iframe` to appear and can be used in Web-First assertions. ![Graphics](https://user-images.githubusercontent.com/746130/142082759-2170db38-370d-43ec-8d41-5f9941f57d83.png) Frame locators can be created with either [`page.frameLocator(selector)`][page.frameLocator(selector)] or [`locator.frameLocator(selector)`][locator.frameLocator(selector)] method. ```js const locator = page.frameLocator('#my-iframe').locator('text=Submit'); await locator.click(); ``` Read more at [our documentation](https://playwright.dev/docs/next/api/class-framelocator). #### Trace Viewer Update Playwright Trace Viewer is now **available online** at https://trace.playwright.dev! Just drag-and-drop your `trace.zip` file to inspect its contents. > **NOTE**: trace files are not uploaded anywhere; [trace.playwright.dev](https://trace.playwright.dev) is a [progressive web application](https://web.dev/progressive-web-apps/) that processes traces locally. - </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 this update 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://app.renovatebot.com/dashboard#github/ttbud/ttbud). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yMDIuNCIsInVwZGF0ZWRJblZlciI6IjM0LjUxLjAifQ==-->
[![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.28.0` -> `1.30.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.28.0/1.30.0) | [![age](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.30.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.30.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.30.0/compatibility-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.30.0/confidence-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | | [playwright](https://playwright.dev) ([source](https://togithub.com/Microsoft/playwright)) | [`1.28.0` -> `1.30.0`](https://renovatebot.com/diffs/npm/playwright/1.28.0/1.30.0) | [![age](https://badges.renovateapi.com/packages/npm/playwright/1.30.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/playwright/1.30.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/playwright/1.30.0/compatibility-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/playwright/1.30.0/confidence-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>Microsoft/playwright</summary> ### [`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) ##### 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. #### 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 </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://app.renovatebot.com/dashboard#github/hashintel/hash). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTEuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExMS4xIn0=-->
[![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.28.0` -> `1.28.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.28.0/1.28.1) | [![age](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/compatibility-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@playwright%2ftest/1.28.1/confidence-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | | [playwright](https://playwright.dev) ([source](https://togithub.com/Microsoft/playwright)) | [`1.28.0` -> `1.28.1`](https://renovatebot.com/diffs/npm/playwright/1.28.0/1.28.1) | [![age](https://badges.renovateapi.com/packages/npm/playwright/1.28.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/playwright/1.28.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/playwright/1.28.1/compatibility-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/playwright/1.28.1/confidence-slim/1.28.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>Microsoft/playwright</summary> ### [`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 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **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 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://app.renovatebot.com/dashboard#github/defenseunicorns/zarf). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4zMC40IiwidXBkYXRlZEluVmVyIjoiMzQuMzAuNCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![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>
Context:
Code Snippet
You can run locally with:
Describe the bug
Server process is no longer being killed on Mac and Linux. It's possible we have some issue on our side, but it's not clear to me what that would be or how to debug it. I do experience this locally, but can kill the process with
kill
after Playwright fails to do so.I see @aslushnikov sent a PR (#18220) affecting this section of code to address @rmunn's issue (#18209), which was later reverted (#18220). The issue was not reopened - should it be? Since that change was reverted, I'm not quite sure where else this might be coming from.
The text was updated successfully, but these errors were encountered: