Skip to content
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

Update dependency playwright to v1.36.0 #496

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Mar 10, 2021

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
playwright (source) 1.9.1 -> 1.36.0 age adoption passing confidence

Release Notes

Microsoft/playwright (playwright)

v1.36.0

Compare Source

Highlights

🏝️ Summer maintenance release.

Browser Versions
  • Chromium 115.0.5790.75
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.35.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/23622 - [Docs] Provide a description how to correctly use expect.configure with poll parameterhttps://github.com/microsoft/playwright/issues/236666 - [BUG] Live Trace does not work with Codespacehttps://github.com/microsoft/playwright/issues/2369393 - [BUG] attachment steps are not hidden inside expect.toHaveScreenshot()

Browser Versions
  • 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

Compare Source

Highlights
  • UI mode is now available in VSCode Playwright extension via a new "Show trace viewer" button:

    Playwright UI Mode

  • UI mode and trace viewer mark network requests handled with page.route() and browserContext.route() handlers, as well as those issued via the API testing:

    Trace Viewer

  • New option maskColor for methods page.screenshot(), locator.screenshot(), expect(page).toHaveScreenshot() and expect(locator).toHaveScreenshot() to change default masking color:

    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:

    $ 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:

    $ 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:

    $ 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

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/23228 - [BUG] Getting "Please install @​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

Compare Source

Highlights

https://github.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

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/23186 - [BUG] Container image for v1.34.0 missing library for webkithttps://github.com/microsoft/playwright/issues/232066 - [BUG] Unable to install supported browsers for v1.34.0 from playwright-corhttps://github.com/microsoft/playwright/issues/2320707 - [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

Compare Source

Highlights
  • UI Mode now shows steps, fixtures and attachments:

  • New property testProject.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:

    // 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 to create pre-configured expect instance with its own defaults such as timeout and soft.

    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 to configure output handling:

    // 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() to create a locator that matches both locators.

    const button = page.getByRole('button').and(page.getByTitle('Subscribe'));
  • New events browserContext.on('console') and browserContext.on('dialog') to subscribe to any dialogs
    and console messages from any page from the given browser context. Use the new methods consoleMessage.page()
    and 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:

    // automation.ts
    import { chromium, firefox, webkit } from '@​playwright/test';
    /* ... */
  • Node.js 14 is no longer supported since it reached its end-of-life 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

Compare Source

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:

    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.

    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

v1.32.3

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/22144 - [BUG] WebServer only starting after timeouthttps://github.com/microsoft/playwright/pull/221911 - chore: allow reusing browser between the testshttps://github.com/microsoft/playwright/issues/222155 - [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

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/21993 - [BUG] Browser crash when using Playwright VSC extension and trace-viewer enabled in confighttps://github.com/microsoft/playwright/issues/220033 - [Feature] Make Vue component mount props less restrictivhttps://github.com/microsoft/playwright/issues/2208989 - [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

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/21832 - [BUG] Trace is not opening on specific broken locatorhttps://github.com/microsoft/playwright/issues/218977 - [BUG] --ui fails to open with error reading mainFrame from an undefined this._pahttps://github.com/microsoft/playwright/issues/21918918 - [BUG]: UI mode, skipped tests not being fohttps://github.com/microsoft/playwright/issues/219411941 - [BUG] UI mode does not show webServer startup erhttps://github.com/microsoft/playwright/issues/2195321953 - [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

Compare Source

πŸ“£ Introducing UI Mode (preview)

Playwright v1.32 updates

New UI Mode lets you explore, run and debug tests. Comes with a built-in watch mode.

Playwright UI Mode

Engage with a new flag --ui:

npx playwright test --ui

New APIs

⚠️ 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

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/20784 - [BUG] ECONNREFUSED on GitHub Actions with Node 18https://github.com/microsoft/playwright/issues/211455 - [REGRESSION]: firefox-1378 times out on await page.reload() when URL contains a #hashttps://github.com/microsoft/playwright/issues/2122626 - [BUG] Playwright seems to get stuck when using shard option and last test is skipphttps://github.com/microsoft/playwright/issues/21227227 - Using the webServer config with a Vite dev servehttps://github.com/microsoft/playwright/issues/21312312 - 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

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/21093 - [Regression v1.31] Headless Windows shows cascading cmd windowshttps://github.com/microsoft/playwright/pull/211066 - 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

Compare Source

New APIs

  • New property TestProject.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.

    // 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() ensures that locator points to an element that intersects viewport, according to the intersection observer API.

    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.
  • Playwright now supports Debian 11 arm64.
  • Official docker images 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 now requires calling defineConfig.

// 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:

// 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

Compare Source

πŸŽ‰ 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

Compare Source

Highlights

https://github.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

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/18928 - [BUG] Electron firstWindow times out after upgrading to 1.28.0https://github.com/microsoft/playwright/issues/192466 - [BUG] Electron firstWindow times out after upgrading to 1.28.https://github.com/microsoft/playwright/issues/1941212 - [REGRESSION]: 1.28 does not work with electron-serve anymorhttps://github.com/microsoft/playwright/issues/19540540 - [BUG] electron.app.getAppPath() returns the path one level higher if you run electron pointing to the directhttps://github.com/microsoft/playwright/issues/195489548 - [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

Compare Source

New APIs

  • New method route.fetch() and new option json for route.fulfill():

    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() to iterate over all matching elements:

    // Check all checkboxes!
    const checkboxes = page.getByRole('checkbox');
    for (const checkbox of await checkboxes.all())
      await checkbox.check();
  • Locator.selectOption matches now by value or label:

    <select multiple>
      <option value="red">Red</div>
      <option value="green">Green</div>
      <option value="blue">Blue</div>
    </select>
    await element.selectOption('Red');
  • Retry blocks of code until all assertions pass:

    await expect(async () => {
      const response = await page.request.get('https://api.example.com');
      await expect(response).toBeOK();
    }).toPass();

    Read more in our documentation.

  • Automatically capture full page screenshot on test failure:

    // playwright.config.ts
    import type { PlaywrightTestConfig } from '@&#8203;playwright/test';
    
    const config: PlaywrightTestConfig = {
      use: {
        screenshot: {
          mode: 'only-on-failure',
          fullPage: true,
        }
      }
    };
    
    export default config;

Miscellaneous

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

Compare Source

Highlights

This patch release includes the following bug fixes:

https://github.com/microsoft/playwright/issues/18928 - [BUG] Electron firstWindow times out after upgrading to 1.28.0https://github.com/microsoft/playwright/issues/189200 - [BUG] [expanded=false] in role selector returns elements without aria-expanded attribuhttps://github.com/microsoft/playwright/issues/18865865 - [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: v1.28

Compare Source

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.
New VSCode Extension
  • 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.
Locator Explorer
  • Codegen and Trace Viewer Dark Theme. Automatically picked up from operating system settings.
Dark Theme
Test Runner
New APIs
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

Compare Source

Highlights

This patch release includes the following bug fixes:

https://github.com/microsoft/playwright/pull/18010 - fix(generator): generate nice locators for arbitrary selectors
https://github.com/microsoft/playwright/pull/17999 - chore: don't fail on undefined video/trace
https://github.com/microsoft/playwright/issues/17955 - [Question] Github Actions test compatibility check failed mitigation?https://github.com/microsoft/playwright/issues/179600 - [BUG] Codegen 1.27 creates NUnit code that does not compilhttps://github.com/microsoft/playwright/pull/1795252 - 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

Compare Source

Locators

With these new APIs, inspired by Testing Library, writing locators is a joy:

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, FrameLocator and 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:

    npx playwright test --workers=20%
  • New options host and port for the html reporter.

    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) 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.

    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:

    ["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

Compare Source

Highlights

This patch includes the following bug fixes:

https://github.com/microsoft/playwright/issues/17500 - [BUG] No tests found using the test explorer - pw/test@1.26.0

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

Compare Source

Assertions

Other Highlights

  • New option maxRedirects for apiRequestContext.get(url[, options]) 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:

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

Compare Source

Highlights

This patch includes the following bug fixes:

https://github.com/microsoft/playwright/issues/16937 - [REGRESSION]: session storage failing >= 1.25.0 in firefoxhttps://github.com/microsoft/playwright/issues/169555 - 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

Compare Source

Highlights

This patch includes the following bug fixes:

https://github.com/microsoft/playwright/issues/16319 - [BUG] webServer.command esbuild fails with ESM and Yarnhttps://github.com/microsoft/playwright/issues/164600 - [BUG] Component test fails on 2nd run when SSL is usehttps://github.com/microsoft/playwright/issues/1666565 - [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

Compare Source

VSCode Extension

  • New Playwright actions view

    Playwright actions
  • Pick selector
    You can pick selector right from a live page, before or after running a test

    Pick selector
  • 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.

extension screenshot

Test Runner

  • test.step(title, body) now returns the value of the step function:

    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).

  • New 'interrupted' test status.

  • Enable tracing via CLI flag: npx playwright test --trace=on.

  • New property testCase.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

Compare Source

Highlights

This patch includes the following bug fixes:

https://github.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

Compare Source

Highlights

This patch includes the following bug fixes:

https://github.com/microsoft/playwright/issues/15898 - [BUG] Typescript error: The type for webServer config property (TestConfigWebServer) is not typed correctlyhttps://github.com/microsoft/playwright/issues/159133 - [BUG] hooksConfig is required for mount fixturhttps://github.com/microsoft/playwright/issues/1593232 - [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

Compare Source

🌍 Multiple Web Servers in playwright.config.ts

Launch multiple web servers, databases, or other processes by passing an array of configurations:

// playwright.config.ts
import type { PlaywrightTestConfig } from '@&#8203;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) to create suites without a title. This is useful for giving a group of tests a common option with test.use(options).

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:

// src/component.spec.ts
import { test } from '@&#8203;playwright/experimental-ct-vue';
import { Component } from './mycomponent';

test('should work', async ({ mount }) => {
  const component = await mount(Component, {
    hooksConfig: {
      /* anything to configure your app */
    }
  });
});
// playwright/index.ts
import { router } from '../router';
import { beforeMount } from '@&#8203;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:

// src/component.spec.jsx
import { test } from '@&#8203;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'
      }
    }
  });
});
// playwright/index.js
import router from 'next/router';
import { beforeMount } from '@&#8203;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

Compare Source

Highlights

This patch includes the following bug fix:

https://github.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

Compare Source

Highlights

This patch includes the following bug fixes:

https://github.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

Compare Source

Highlights

This patch includes the following bug fixes:

https://github.com/microsoft/playwright/issues/15273 - [BUG] LaunchOptions config has no effect after update to v1.23.0https://github.com/microsoft/playwright/issues/153511 - [REGRESSION]: Component testing project does not compile anymorhttps://github.com/microsoft/playwright/issues/1543131 - [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

Compare Source

Highlights

This patch includes the following bug fixes:

https://github.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

Compare Source

Playwright v1.23 updates

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:

npx playwright open --save-har=github.har.zip https://github.com/microsoft

Alternatively, you can record HAR programmatically:

const context = await browser.newContext({
  recordHar: { path: 'github.har.zip' }
});
// ... do stuff ...
await context.close();

Use the new methods page.routeFromHAR() or browserContext.routeFromHAR() to serve matching responses from the HAR file:

await context.routeFromHAR('github.har.zip');

Read more in our documentation.

Advanced Routing

You can now use route.fallback() to defer routing to other handlers.

Consider the following example:

// 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() and browserContext.routeFromHAR() also participate in routing and could be deferred to.

Web-First Assertions Update
Component Tests Update

Read more about component testing with Playwright.

Miscellaneous
  • If there's a service worker that's in your way, you can now easily disable it with a new context option serviceWorkers:
    // playwright.config.ts
    export default {
      use: {
        serviceWorkers: 'block',
      }
    }
  • Using .zip path for recordHar context option automatically zips the resulting HAR:
    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:
    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

Compare Source

Highlights

This patch includes the following bug fixes:

https://github.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

Compare Source

Highlights

This patch includes the following bug fixes:

[https://github.com/microsoft/playwright/issues/14186](https://togithub.com/mic


Configuration

πŸ“… Schedule: Branch creation - "before 2am" (UTC), 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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@vercel
Copy link

vercel bot commented Mar 10, 2021

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

πŸ” Inspect: https://vercel.com/onoue/tempest-client/3MttCTkmNHecF1AZkEuPc6Z16T58
βœ… Preview: https://tempest-client-git-renovate-playwright-monorepo-onoue.vercel.app

@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from bb19e5a to 128d1a0 Compare March 24, 2021 22:09
@renovate renovate bot changed the title Update dependency playwright to v1.9.2 Update dependency playwright to v1.10.0 Mar 24, 2021
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 128d1a0 to fd17e1c Compare May 15, 2021 19:58
@renovate renovate bot changed the title Update dependency playwright to v1.10.0 Update dependency playwright to v1.11.0 May 15, 2021
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from fd17e1c to 615a962 Compare June 6, 2021 22:45
@renovate renovate bot changed the title Update dependency playwright to v1.11.0 Update dependency playwright to v1.11.1 Jun 6, 2021
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 615a962 to c6fd409 Compare June 15, 2021 15:09
@renovate renovate bot changed the title Update dependency playwright to v1.11.1 Update dependency playwright to v1.12.2 Jun 15, 2021
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from c6fd409 to 93ef402 Compare October 20, 2021 06:38
@renovate renovate bot changed the title Update dependency playwright to v1.12.2 Update dependency playwright to v1.15.2 Oct 20, 2021
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 93ef402 to 4bb7a6f Compare March 7, 2022 11:43
@renovate renovate bot changed the title Update dependency playwright to v1.15.2 Update dependency playwright to v1.19.2 Mar 7, 2022
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 4bb7a6f to 4cd64de Compare March 26, 2022 15:55
@renovate renovate bot changed the title Update dependency playwright to v1.19.2 Update dependency playwright to v1.20.1 Mar 26, 2022
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 4cd64de to 14f529b Compare April 24, 2022 23:39
@renovate renovate bot changed the title Update dependency playwright to v1.20.1 Update dependency playwright to v1.21.1 Apr 24, 2022
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 14f529b to 65ad830 Compare May 15, 2022 22:43
@vercel
Copy link

vercel bot commented May 15, 2022

The latest updates on your projects. Learn more about Vercel for Git β†—οΈŽ

Name Status Preview Comments Updated (UTC)
tempest-client ❌ Failed (Inspect) Jul 11, 2023 7:27pm

@renovate renovate bot changed the title Update dependency playwright to v1.21.1 Update dependency playwright to v1.22.0 May 15, 2022
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from fbdf1fe to 1afbd68 Compare March 16, 2023 11:17
@renovate renovate bot changed the title Update dependency playwright to v1.28.0 Update dependency playwright to v1.31.2 Mar 16, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 1afbd68 to 3c103ff Compare March 23, 2023 23:58
@renovate renovate bot changed the title Update dependency playwright to v1.31.2 Update dependency playwright to v1.32.0 Mar 23, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 3c103ff to 560b153 Compare March 25, 2023 07:44
@renovate renovate bot changed the title Update dependency playwright to v1.32.0 Update dependency playwright to v1.32.1 Mar 25, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 560b153 to fbc6bf9 Compare April 17, 2023 12:50
@renovate renovate bot changed the title Update dependency playwright to v1.32.1 Update dependency playwright to v1.32.3 Apr 17, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from fbc6bf9 to 7479a8a Compare May 28, 2023 10:03
@renovate renovate bot changed the title Update dependency playwright to v1.32.3 Update dependency playwright to v1.34.3 May 28, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 7479a8a to c7ff98f Compare June 8, 2023 23:40
@renovate renovate bot changed the title Update dependency playwright to v1.34.3 Update dependency playwright to v1.35.0 Jun 8, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from c7ff98f to a97465c Compare June 15, 2023 19:32
@renovate renovate bot changed the title Update dependency playwright to v1.35.0 Update dependency playwright to v1.35.1 Jun 15, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from a97465c to 30692f9 Compare July 11, 2023 19:26
@renovate renovate bot changed the title Update dependency playwright to v1.35.1 Update dependency playwright to v1.36.0 Jul 11, 2023
@origamium origamium closed this Jul 13, 2023
@origamium origamium reopened this Jul 13, 2023
@origamium origamium closed this Jul 13, 2023
@renovate
Copy link
Contributor Author

renovate bot commented Jul 13, 2023

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (1.36.0). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/playwright-monorepo branch July 13, 2023 12:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant