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

chore(deps): update dependency playwright to v1.49.1 #904

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Oct 7, 2023

This PR contains the following updates:

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

Release Notes

microsoft/playwright (playwright)

v1.49.1

Compare Source

v1.49.0

Compare Source

v1.48.2

Compare Source

v1.48.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/33023 - [Bug]: command line flag --headed has no effect in ui modehttps://github.com/microsoft/playwright/issues/331077 - [REGRESSION]: page.waitForRequest does not get resolved since 1.48.https://github.com/microsoft/playwright/issues/3308585 - [Bug]: WebSocket route does not handle full URLs in Playwrighttps://github.com/microsoft/playwright/issues/33052052 - [Regression]: Inspector not showing recorded sthttps://github.com/microsoft/playwright/issues/331323132 - [Bug]: Wrong Ubuntu release name in Dockerfile.nhttps://github.com/microsoft/playwright/pull/3299632996 - [BUG] Trace attachments have small unusable height

Browser Versions

  • Chromium 130.0.6723.19
  • Mozilla Firefox 130.0
  • WebKit 18.0

This version was also tested against the following stable channels:

  • Google Chrome 129
  • Microsoft Edge 129

v1.48.0

Compare Source

v1.47.2

Compare Source

Highlights

https://github.com/microsoft/playwright/pull/32699- [REGRESSION]: fix(codegen): use content_frame property in python/.NEThttps://github.com/microsoft/playwright/issues/327066- [REGRESSION]: page.pause() does not pause test timeout after 1.4https://github.com/microsoft/playwright/pull/3266161 - fix(trace-viewer): time delta between local and remote actions

Browser Versions

  • Chromium 129.0.6668.29
  • Mozilla Firefox 130.0
  • WebKit 18.0

This version was also tested against the following stable channels:

  • Google Chrome 128
  • Microsoft Edge 128

v1.47.1

Compare Source

v1.47.0

Compare Source

v1.46.1

Compare Source

v1.46.0

Compare Source

v1.45.3

Compare Source

v1.45.2

Compare Source

v1.45.1

Compare Source

v1.45.0

Compare Source

v1.44.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/30779 - [REGRESSION]: When using video: 'on' with VSCode extension the browser got closed
https://github.com/microsoft/playwright/issues/30755 - [REGRESSION]: Electron launch with spaces inside executablePath didn't workhttps://github.com/microsoft/playwright/issues/307700 - [REGRESSION]: Mask elements outside of viewport when creating fullscreen screenshots didn't worhttps://github.com/microsoft/playwright/issues/3085858 - [REGRESSION]: ipv6 got shown instead of localhost in show-trace/show-report

Browser Versions

  • Chromium 125.0.6422.14
  • Mozilla Firefox 125.0.1
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 124
  • Microsoft Edge 124

v1.44.0

Compare Source

New APIs

Accessibility assertions

  • expect(locator).toHaveAccessibleName() checks if the element has the specified accessible name:

    const locator = page.getByRole('button');
    await expect(locator).toHaveAccessibleName('Submit');
  • expect(locator).toHaveAccessibleDescription() checks if the element has the specified accessible description:

    const locator = page.getByRole('button');
    await expect(locator).toHaveAccessibleDescription('Upload a photo');
  • expect(locator).toHaveRole() checks if the element has the specified ARIA role:

    const locator = page.getByTestId('save-button');
    await expect(locator).toHaveRole('button');

Locator handler

  • After executing the handler added with page.addLocatorHandler(), Playwright will now wait until the overlay that triggered the handler is not visible anymore. You can opt-out of this behavior with the new noWaitAfter option.
  • You can use new times option in page.addLocatorHandler() to specify maximum number of times the handler should be run.
  • The handler in page.addLocatorHandler() now accepts the locator as argument.
  • New page.removeLocatorHandler() method for removing previously added locator handlers.
const locator = page.getByText('This interstitial covers the button');
await page.addLocatorHandler(locator, async overlay => {
  await overlay.locator('#close').click();
}, { times: 3, noWaitAfter: true });
// Run your tests that can be interrupted by the overlay.
// ...
await page.removeLocatorHandler(locator);

Miscellaneous options

  • multipart option in apiRequestContext.fetch() now accepts FormData and supports repeating fields with the same name.

    const formData = new FormData();
    formData.append('file', new File(['let x = 2024;'], 'f1.js', { type: 'text/javascript' }));
    formData.append('file', new File(['hello'], 'f2.txt', { type: 'text/plain' }));
    context.request.post('https://example.com/uploadFiles', {
      multipart: formData
    });
  • expect(callback).toPass({ intervals }) can now be configured by expect.toPass.inervals option globally in testConfig.expect or per project in testProject.expect.

  • expect(page).toHaveURL(url) now supports ignoreCase option.

  • testProject.ignoreSnapshots allows to configure per project whether to skip screenshot expectations.

Reporter API

  • New method suite.entries() returns child test suites and test cases in their declaration order. suite.type and testCase.type can be used to tell apart test cases and suites in the list.
  • Blob reporter now allows overriding report file path with a single option outputFile. The same option can also be specified as PLAYWRIGHT_BLOB_OUTPUT_FILE environment variable that might be more convenient on CI/CD.
  • JUnit reporter now supports includeProjectInTestName option.

Command line

  • --last-failed CLI option for running only tests that failed in the previous run.

    First run all tests:

    $ npx playwright test
    
    Running 103 tests using 5 workers
    ...
    2 failed
      [chromium] › my-test.spec.ts:8:5 › two ─────────────────────────────────────────────────────────
      [chromium] › my-test.spec.ts:13:5 › three ──────────────────────────────────────────────────────
    101 passed (30.0s)

    Now fix the failing tests and run Playwright again with --last-failed option:

    $ npx playwright test --last-failed
    
    Running 2 tests using 2 workers
      2 passed (1.2s)

Browser Versions

  • Chromium 125.0.6422.14
  • Mozilla Firefox 125.0.1
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 124
  • Microsoft Edge 124

v1.43.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/30300 - [REGRESSION]: UI mode restarts if keep storage statehttps://github.com/microsoft/playwright/issues/303399 - [REGRESSION]: Brand new install of playwright, unable to run chromium with show browser using vscode

Browser Versions
  • Chromium 124.0.6367.29
  • Mozilla Firefox 124.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 123
  • Microsoft Edge 123

v1.43.0

Compare Source

New APIs

  • Method browserContext.clearCookies() now supports filters to remove only some cookies.

    // Clear all cookies.
    await context.clearCookies();
    // New: clear cookies with a particular name.
    await context.clearCookies({ name: 'session-id' });
    // New: clear cookies for a particular domain.
    await context.clearCookies({ domain: 'my-origin.com' });
  • New mode retain-on-first-failure for testOptions.trace. In this mode, trace is recorded for the first run of each test, but not for retires. When test run fails, the trace file is retained, otherwise it is removed.

    import { defineConfig } from '@​playwright/test';
    
    export default defineConfig({
      use: {
        trace: 'retain-on-first-failure',
      },
    });
  • New property testInfo.tags exposes test tags during test execution.

    test('example', async ({ page }) => {
      console.log(test.info().tags);
    });
  • New method locator.contentFrame() converts a Locator object to a FrameLocator. This can be useful when you have a Locator object obtained somewhere, and later on would like to interact with the content inside the frame.

    const locator = page.locator('iframe[name="embedded"]');
    // ...
    const frameLocator = locator.contentFrame();
    await frameLocator.getByRole('button').click();
  • New method frameLocator.owner() converts a FrameLocator object to a Locator. This can be useful when you have a FrameLocator object obtained somewhere, and later on would like to interact with the iframe element.

    const frameLocator = page.frameLocator('iframe[name="embedded"]');
    // ...
    const locator = frameLocator.owner();
    await expect(locator).toBeVisible();

UI Mode Updates

Playwright UI Mode

  • See tags in the test list.
  • Filter by tags by typing @fast or clicking on the tag itself.
  • New shortcuts:
    • F5 to run tests.
    • Shift F5 to stop running tests.
    • Ctrl ` to toggle test output.

Browser Versions

  • Chromium 124.0.6367.29
  • Mozilla Firefox 124.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 123
  • Microsoft Edge 123

v1.42.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/29732 - [Regression]: HEAD requests to webServer.url since v1.42.0https://github.com/microsoft/playwright/issues/297466 - [Regression]: Playwright CT CLI scripts fail due to broken initializePlugin imporhttps://github.com/microsoft/playwright/issues/2973939 - [Bug]: Component tests fails when imported a module with a dot in a nahttps://github.com/microsoft/playwright/issues/29731731 - [Regression]: 1.42.0 breaks some import statemehttps://github.com/microsoft/playwright/issues/297609760 - [Bug]: Possible regression with chained locators in v1.42

Browser Versions
  • Chromium 123.0.6312.4
  • Mozilla Firefox 123.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 122
  • Microsoft Edge 123

v1.42.0

Compare Source

New APIs

  • Test tags

    New tag syntax for adding tags to the tests (@​-tokens in the test title are still supported).

    test('test customer login', { tag: ['@​fast', '@​login'] }, async ({ page }) => {
      // ...
    });

    Use --grep command line option to run only tests with certain tags.

    npx playwright test --grep @​fast
  • Annotating skipped tests

    New annotation syntax for test annotations allows annotating the tests that do not run.

    test('test full report', {
      annotation: [
        { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/23180' },
        { type: 'docs', description: 'https://playwright.dev/docs/test-annotations#tag-tests' },
      ],
    }, async ({ page }) => {
      // ...
    });
  • page.addLocatorHandler()

    New method page.addLocatorHandler() registers a callback that will be invoked when specified element becomes visible and may block Playwright actions. The callback can get rid of the overlay. Here is an example that closes a cookie dialog when it appears.

    // Setup the handler.
    await page.addLocatorHandler(
        page.getByRole('heading', { name: 'Hej! You are in control of your cookies.' }),
        async () => {
          await page.getByRole('button', { name: 'Accept all' }).click();
        });
    // Write the test as usual.
    await page.goto('https://www.ikea.com/');
    await page.getByRole('link', { name: 'Collection of blue and white' }).click();
    await expect(page.getByRole('heading', { name: 'Light and easy' })).toBeVisible();
  • Project wildcard filter
    Playwright command line flag now supports '*' wildcard when filtering by project.

    npx playwright test --project='*mobile*'
  • Other APIs

    • expect(callback).toPass({ timeout })
      The timeout can now be configured by expect.toPass.timeout option globally or in project config

    • electronApplication.on('console')
      electronApplication.on('console') event is emitted when Electron main process calls console API methods.

      electronApp.on('console', async msg => {
        const values = [];
        for (const arg of msg.args())
          values.push(await arg.jsonValue());
        console.log(...values);
      });
      await electronApp.evaluate(() => console.log('hello', 5, { foo: 'bar' }));
    • page.pdf() accepts two new options tagged and outline.

Breaking changes

Mixing the test instances in the same suite is no longer supported. Allowing it was an oversight as it makes reasoning about the semantics unnecessarily hard.

const test = baseTest.extend({ item: async ({}, use) => {} });
baseTest.describe('Admin user', () => {
  test('1', async ({ page, item }) => {});
  test('2', async ({ page, item }) => {});
});

Announcements

  • ⚠️ Ubuntu 18 is not supported anymore.

Browser Versions

  • Chromium 123.0.6312.4
  • Mozilla Firefox 123.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 122
  • Microsoft Edge 123

v1.41.2

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/29123 - [REGRESSION] route.continue: Protocol error (Fetch.continueRequest): Invalid InterceptionId.

Browser Versions

  • Chromium 121.0.6167.57
  • Mozilla Firefox 121.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 120
  • Microsoft Edge 120

v1.41.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/29067 - [REGRESSION] Codegen/Recorder: not all clicks are being actioned nor recordedhttps://github.com/microsoft/playwright/issues/290288 - [REGRESSION] React component tests throw type error when passing null/undefined to componenhttps://github.com/microsoft/playwright/issues/2902727 - [REGRESSION] React component tests not passing Date prop valuhttps://github.com/microsoft/playwright/issues/29023023 - [REGRESSION] React component tests not rendering children phttps://github.com/microsoft/playwright/issues/290199019 - [REGRESSION] trace.playwright.dev does not currently support the loading from URL

Browser Versions

  • Chromium 121.0.6167.57
  • Mozilla Firefox 121.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 120
  • Microsoft Edge 120

v1.41.0

Compare Source

New APIs

Browser Versions

  • Chromium 121.0.6167.57
  • Mozilla Firefox 121.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 120
  • Microsoft Edge 120

v1.40.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/28319 - [REGRESSION]: Version 1.40.0 Produces corrupted traceshttps://github.com/microsoft/playwright/issues/283711 - [BUG] The color of the 'ok' text did not change to green in the vs code test results sectiohttps://github.com/microsoft/playwright/issues/2832121 - [BUG] Ambiguous test outcome and status for serial mohttps://github.com/microsoft/playwright/issues/28362362 - [BUG] Merging blobs ends up in Error: Cannot create a string longer than 0x1fffffe8 characthttps://github.com/microsoft/playwright/pull/282398239 - fix: collect all errors in removeFolders

Browser Versions
  • Chromium 120.0.6099.28
  • Mozilla Firefox 119.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 119
  • Microsoft Edge 119

v1.40.0

Compare Source

Test Generator Update

Playwright Test Generator

New tools to generate assertions:

Here is an example of a generated test with assertions:

import { test, expect } from '@​playwright/test';

test('test', async ({ page }) => {
  await page.goto('https://playwright.dev/');
  await page.getByRole('link', { name: 'Get started' }).click();
  await expect(page.getByLabel('Breadcrumbs').getByRole('list')).toContainText('Installation');
  await expect(page.getByLabel('Search')).toBeVisible();
  await page.getByLabel('Search').click();
  await page.getByPlaceholder('Search docs').fill('locator');
  await expect(page.getByPlaceholder('Search docs')).toHaveValue('locator');
});

New APIs

Other Changes

Browser Versions

  • Chromium 120.0.6099.28
  • Mozilla Firefox 119.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 119
  • Microsoft Edge 119

v1.39.0

Compare Source

Add custom matchers to your expect

You can extend Playwright assertions by providing custom matchers. These matchers will be available on the expect object.

import { expect as baseExpect } from '@​playwright/test';
export const expect = baseExpect.extend({
  async toHaveAmount(locator: Locator, expected: number, options?: { timeout?: number }) {
    // ... see documentation for how to write matchers.
  },
});

test('pass', async ({ page }) => {
  await expect(page.getByTestId('cart')).toHaveAmount(5);
});

See the documentation for a full example.

Merge test fixtures

You can now merge test fixtures from multiple files or modules:

import { mergeTests } from '@​playwright/test';
import { test as dbTest } from 'database-test-utils';
import { test as a11yTest } from 'a11y-test-utils';

export const test = mergeTests(dbTest, a11yTest);
import { test } from './fixtures';

test('passes', async ({ database, page, a11y }) => {
  // use database and a11y fixtures.
});

Merge custom expect matchers

You can now merge custom expect matchers from multiple files or modules:

import { mergeTests, mergeExpects } from '@​playwright/test';
import { test as dbTest, expect as dbExpect } from 'database-test-utils';
import { test as a11yTest, expect as a11yExpect } from 'a11y-test-utils';

export const test = mergeTests(dbTest, a11yTest);
export const expect = mergeExpects(dbExpect, a11yExpect);
import { test, expect } from './fixtures';

test('passes', async ({ page, database }) => {
  await expect(database).toHaveDatabaseUser('admin');
  await expect(page).toPassA11yAudit();
});

Hide implementation details: box test steps

You can mark a test.step() as "boxed" so that errors inside it point to the step call site.

async function login(page) {
  await test.step('login', async () => {
    // ...
  }, { box: true });  // Note the "box" option here.
}
Error: Timed out 5000ms waiting for expect(locator).toBeVisible()
  ... error details omitted ...

  14 |   await page.goto('https://github.com/login');
> 15 |   await login(page);
     |         ^
  16 | });

See test.step() documentation for a full example.

New APIs

Browser Versions

  • Chromium 119.0.6045.9
  • Mozilla Firefox 118.0.1
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 118
  • Microsoft Edge 118

v1.38.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/27071 - expect(value).toMatchSnapshot() deprecation announcement on V1.38
https://github.com/microsoft/playwright/issues/27072 - [BUG] PWT trace viewer fails to load trace and throws TypeErrorhttps://github.com/microsoft/playwright/issues/270733 - [BUG] RangeError: Invalid time valuhttps://github.com/microsoft/playwright/issues/2708787 - [REGRESSION]: npx playwright test --list prints all tests twihttps://github.com/microsoft/playwright/issues/27113113 - [REGRESSION]: No longer able to extend PlaywrightTest.Matchers type for locators and pahttps://github.com/microsoft/playwright/issues/271447144 - [BUG]can not display thttps://github.com/microsoft/playwright/issues/2716327163 - [REGRESSION] Single Quote Wrongly Escaped by Locator When Using Unicodehttps://github.com/microsoft/playwright/issues/27181/27181 - [BUG] evaluate serializing fails at 1.38

Browser Versions
  • Chromium 117.0.5938.62
  • Mozilla Firefox 117.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 116
  • Microsoft Edge 116

v1.38.0

Compare Source

UI Mode Updates

Playwright UI Mode

  1. Zoom into time range.
  2. Network panel redesign.

New APIs

  • [browserContext.on('weberror')][browserContext.on('weberror')]
  • [locator.pressSequentially()][locator.pressSequentially()]
  • The [reporter.onEnd()][reporter.onEnd()] now reports startTime and total run duration.

Deprecations

  • The following methods were deprecated: [page.type()][page.type()], [frame.type()][frame.type()], [locator.type()][locator.type()] and [elementHandle.type()][elementHandle.type()].
    Please use [locator.fill()][locator.fill()] instead which is much faster. Use [locator.pressSequentially()][locator.pressSequentially()] only if there is a
    special keyboard handling on the page, and you need to press keys one-by-one.

Breaking Changes: Playwright no longer downloads browsers automatically

[!NOTE]
If you are using @playwright/test package, this change does not affect you.

Playwright recommends to use @playwright/test package and download browsers via npx playwright install command. If you are following this recommendation, nothing has changed for you.

However, up to v1.38, installing the playwright package instead of @playwright/test did automatically download browsers. This is no longer the case, and we recommend to explicitly download browsers via npx playwright install command.

v1.37 and earlier

playwright package was downloading browsers during npm install, while @playwright/test was not.

v1.38 and later

playwright and @playwright/test packages do not download browsers during npm install.

Recommended migration

Run npx playwright install to download browsers after npm install. For example, in your CI configuration:

- run: npm ci
- run: npx playwright install --with-deps

Alternative migration option - not recommended

Add @playwright/browser-chromium, @playwright/browser-firefox and @playwright/browser-webkit as a dependency. These packages download respective browsers during npm install. Make sure you keep the version of all playwright packages in sync:

// package.json
{
  "devDependencies": {
    "playwright": "1.38.0",
    "@​playwright/browser-chromium": "1.38.0",
    "@​playwright/browser-firefox": "1.38.0",
    "@​playwright/browser-webkit": "1.38.0"
  }
}
Browser Versions
  • Chromium 117.0.5938.62
  • Mozilla Firefox 117.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 116
  • Microsoft Edge 116

v1.37.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/26496 - [REGRESSION] webServer stdout is always getting printedhttps://github.com/microsoft/playwright/issues/264922 - [REGRESSION] test.only with project dependency is not working

Browser Versions

  • Chromium 116.0.5845.82
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 115
  • Microsoft Edge 115

v1.37.0

Compare Source

Watch the overview: Playwright 1.36 & 1.37

✨ New tool to merge reports

If you run tests on multiple shards, you can now merge all reports in a single HTML report (or any other report)
using the new merge-reports CLI tool.

Using merge-reports tool requires the following steps:

  1. Adding a new "blob" reporter to the config when running on CI:

    export default defineConfig({
      testDir: './tests',
      reporter: process.env.CI ? 'blob' : 'html',
    });

    The "blob" reporter will produce ".zip" files that contain all the information
    about the test run.

  2. Copying all "blob" reports in a single shared location and running npx playwright merge-reports:

    npx playwright merge-reports --reporter html ./all-blob-reports

Read more in our documentation.

📚 Debian 12 Bookworm Support

Playwright now supports Debian 12 Bookworm on both x86_64 and arm64 for Chromium, Firefox and WebKit.
Let us know if you encounter any issues!

Linux support looks like this:

Ubuntu 20.04 Ubuntu 22.04 Debian 11 Debian 12
Chromium
WebKit
Firefox

🌈 UI Mode Updates

  • UI Mode now respects project dependencies. You can control which dependencies to respect by checking/unchecking them in a projects list.
  • Console logs from the test are now displayed in the Console tab.

Browser Versions

  • Chromium 116.0.5845.82
  • Mozilla Firefox 115.0
  • WebKit 17.0

This version was also tested against the following stable channels:

  • Google Chrome 115
  • Microsoft Edge 115

v1.36.2: 1.36.2

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/24316 - [REGRESSION] Character classes are not working in globs in 1.36

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

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.36.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/24184 - [REGRESSION]: Snapshot name contains some random string after test name when tests are run in container

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

This version was also tested against the following stable channels:

  • Google Chrome 114
  • Microsoft Edge 114

v1.36.0

Compare Source

Watch the overview: Playwright 1.36 & 1.37

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

Playwright v1.35 updates

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

Playwright v1.33 & v1.34 updates

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

Playwright v1.33 & v1.34 updates

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.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, 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 was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 1014e07 to 524461e Compare October 12, 2023 01:12
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.38.1 chore(deps): update dependency playwright to v1.39.0 Oct 12, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 524461e to c8dac70 Compare November 17, 2023 00:04
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.39.0 chore(deps): update dependency playwright to v1.40.0 Nov 17, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from c8dac70 to d41ebf7 Compare November 29, 2023 04:17
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.40.0 chore(deps): update dependency playwright to v1.40.1 Nov 29, 2023
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 18 times, most recently from 5a46e43 to 888742f Compare January 16, 2024 19:22
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.40.1 chore(deps): update dependency playwright to v1.41.0 Jan 16, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 888742f to 5a8193c Compare January 20, 2024 00:03
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.41.0 chore(deps): update dependency playwright to v1.41.1 Jan 20, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 3 times, most recently from c7378d7 to 2d65a83 Compare January 25, 2024 12:10
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 9e32411 to 0b85aaa Compare September 6, 2024 00:47
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.46.1 chore(deps): update dependency playwright to v1.47.0 Sep 6, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 0b85aaa to a48a947 Compare September 13, 2024 20:12
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.47.0 chore(deps): update dependency playwright to v1.47.1 Sep 13, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from a48a947 to 2124155 Compare September 20, 2024 19:19
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.47.1 chore(deps): update dependency playwright to v1.47.2 Sep 20, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 2124155 to 2509dde Compare October 8, 2024 14:25
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.47.2 chore(deps): update dependency playwright to v1.48.0 Oct 8, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 2509dde to 58ba71d Compare October 16, 2024 10:52
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.48.0 chore(deps): update dependency playwright to v1.48.1 Oct 16, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 58ba71d to 7c91365 Compare October 25, 2024 21:02
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.48.1 chore(deps): update dependency playwright to v1.48.2 Oct 25, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 7c91365 to 4786605 Compare November 18, 2024 19:42
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.48.2 chore(deps): update dependency playwright to v1.49.0 Nov 18, 2024
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.49.0 chore(deps): update dependency playwright to v1.49.0 - autoclosed Dec 8, 2024
@renovate renovate bot closed this Dec 8, 2024
@renovate renovate bot deleted the renovate/playwright-monorepo branch December 8, 2024 18:53
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.49.0 - autoclosed chore(deps): update dependency playwright to v1.49.0 Dec 9, 2024
@renovate renovate bot reopened this Dec 9, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 6 times, most recently from ea79090 to 7afcd52 Compare December 10, 2024 04:42
@renovate renovate bot changed the title chore(deps): update dependency playwright to v1.49.0 chore(deps): update dependency playwright to v1.49.1 Dec 10, 2024
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch 2 times, most recently from c8466f3 to 194dbd8 Compare December 10, 2024 09:25
@renovate renovate bot force-pushed the renovate/playwright-monorepo branch from 194dbd8 to 7f41b09 Compare December 10, 2024 13:27
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.

0 participants