Skip to content

⬆️ Update Playwright - #2042

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/playwright
Open

⬆️ Update Playwright#2042
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/playwright

Conversation

@renovate

@renovate renovate Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence Type Update Pending
@playwright/test (source) ^1.61.1^1.62.0 age confidence devDependencies minor 1.62.1
gwennlbh/playwright-bun v1.61.1v1.62.0 age confidence container minor v1.62.1

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 09:00 PM and 11:59 PM, only on Sunday (* 21-23 * * 7)
    • Between 12:00 AM and 04:59 PM, only on Monday (* 0-16 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • 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 enabled auto-merge (squash) August 3, 2026 00:12
@github-actions github-actions Bot added the notifications-off Dont send pushbullet notifications for this PR label Aug 3, 2026
@renovate
renovate Bot temporarily deployed to 2042: Unit tests August 3, 2026 00:24 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Coverage August 3, 2026 00:24 Inactive
@renovate
renovate Bot temporarily deployed to 2042: App preview August 3, 2026 00:28 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Android problems report August 3, 2026 00:33 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Bundle analyzer August 3, 2026 00:41 Inactive
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Bundle Stats

Hey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle.

As this PR is updated, I'll keep you updated on how the bundle size is impacted.

Total

Files count Total bundle size % Changed
293 48.74 MB
12.44 MB
0%
Changeset
File Δ Size
index.esm.js 🆕 +5.17 kB 0 B → 5.17 kB
Sheet/Sheet.svelte 🆕 +2.99 kB 0 B → 2.99 kB
metadata/constraints.ts 🆕 +2.14 kB 0 B → 2.14 kB
routes/(app)/(sidepanel)/crop/+page.svelte 🆕 +1.54 kB 0 B → 1.54 kB
libraw-wasm/dist/index.js 🆕 +1.52 kB 0 B → 1.52 kB
touch/longpress.ts 🆕 +1.29 kB 0 B → 1.29 kB
candidates/+page.svelte 🆕 +1.04 kB 0 B → 1.04 kB
ast/validate.js 🆕 +266 B 0 B → 266 B
remainder.js 🆕 +263 B 0 B → 263 B
utils/dom.js 🆕 +119 B 0 B → 119 B
schema.js 📈 +990 B (+1031.25%) 96 B → 1.06 kB
string.js 📈 +614 B (+339.23%) 181 B → 795 B
shared.js 📈 +319 B (+165.28%) 193 B → 512 B
shim.js 📈 +126 B (+129.90%) 97 B → 223 B
observations.js 📈 +255 B (+65.55%) 389 B → 644 B
implementation.js 📈 +399 B (+55.57%) 718 B → 1.09 kB
polyfill.js 📈 +40 B (+23.67%) 169 B → 209 B
idb/build/index.js 📉 -1.02 kB (-23.56%) 4.32 kB → 3.3 kB
kinds.js 📉 -861 B (-68.17%) 1.23 kB → 402 B
warnings.js 📉 -554 B (-77.48%) 715 B → 161 B
errors.js 📉 -822 B (-81.07%) 1014 B → 192 B
tabbable/dist/index.esm.js 🔥 -5.17 kB (-100%) 5.17 kB → 0 B
Sheet.svelte 🔥 -2.99 kB (-100%) 2.99 kB → 0 B
constraints.ts 🔥 -2.14 kB (-100%) 2.14 kB → 0 B
(sidepanel)/crop/+page.svelte 🔥 -1.54 kB (-100%) 1.54 kB → 0 B
longpress.ts 🔥 -1.29 kB (-100%) 1.29 kB → 0 B
json/schema.js 🔥 -1.06 kB (-100%) 1.06 kB → 0 B
legacy/legacy-client.js 🔥 -1.04 kB (-100%) 1.04 kB → 0 B
schemas/exports.js 🔥 -470 B (-100%) 470 B → 0 B
BigInt/remainder.js 🔥 -263 B (-100%) 263 B → 0 B
helpers/isPrimitive.js 🔥 -98 B (-100%) 98 B → 0 B
View detailed bundle breakdown

Added

Asset File Size % Changed
_app/immutable/nodes/2.DCa166R5.js 0 B → 116.01 kB (+116.01 kB)
0 B → 62.02 kB (gzip)
-

Removed

Asset File Size % Changed
_app/immutable/nodes/2.D0UIYhyz.js 116.01 kB → 0 B (-116.01 kB)
62.02 kB → 0 B (gzip)
-100%

Bigger

No assets were bigger

Smaller

No assets were smaller

@renovate
renovate Bot temporarily deployed to 2042: E2E tests August 3, 2026 01:00 Inactive
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Performance changes with main

Browser Test Metric Head Base Change
webkit startup @blank Total 11 875 ms 11 749,4 ms
startup Total 10 934 ms 11 421,6 ms
chromium startup DOM 360,66 582,58 🔻-38,09
Load 360,8 582,82 🔻-38,09
Bytes 20 258 214 20 158 432
LCP 7 261,6 8 896 🔻-18,37
TBT 1 934,8 2 276 🔻-14,99
CLS 0,42 0,53 🔻-21,31
Total 7 478,2 ms 9 232,6 ms 🔻-19 %
startup @blank DOM 623,18 572,2
Load 623,76 572,5
Bytes 8 422 291,6 8 825 389
LCP 15 856 15 696,8
TBT 3 143 2 879,8
CLS 0,42 0,4
Total 16 047,6 ms 15 899,8 ms

Total: total, DOM: domCompleteTiming, Load: pageloadTiming, Bytes: totalBytes, LCP: largestContentfulPaint, TBT: totalBlockingTime, CLS: cumulativeLayoutShift,

@renovate
renovate Bot force-pushed the renovate/playwright branch from 2691b68 to 1f8a733 Compare August 3, 2026 06:39
@renovate
renovate Bot temporarily deployed to 2042: App preview August 3, 2026 06:44 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Unit tests August 3, 2026 06:48 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Coverage August 3, 2026 06:48 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Android problems report August 3, 2026 06:50 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Bundle analyzer August 3, 2026 07:01 Inactive
@renovate
renovate Bot temporarily deployed to 2042: E2E tests August 3, 2026 07:15 Inactive
@renovate
renovate Bot force-pushed the renovate/playwright branch 2 times, most recently from 4b7ce8a to 59e8a0b Compare August 3, 2026 10:12
@renovate
renovate Bot temporarily deployed to 2042: App preview August 3, 2026 10:16 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Unit tests August 3, 2026 10:20 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Coverage August 3, 2026 10:20 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Android problems report August 3, 2026 10:21 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Bundle analyzer August 3, 2026 10:30 Inactive
@renovate
renovate Bot temporarily deployed to 2042: E2E tests August 3, 2026 10:42 Inactive
@renovate
renovate Bot force-pushed the renovate/playwright branch 2 times, most recently from 0183dbf to d00529c Compare August 3, 2026 14:31
@renovate
renovate Bot temporarily deployed to 2042: Android problems report August 3, 2026 15:16 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Bundle analyzer August 3, 2026 15:18 Inactive
@renovate
renovate Bot temporarily deployed to 2042: E2E tests August 3, 2026 15:43 Inactive
@renovate
renovate Bot force-pushed the renovate/playwright branch from 7a3652f to 7310bc2 Compare August 3, 2026 16:56
@renovate
renovate Bot temporarily deployed to 2042: App preview August 3, 2026 16:58 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Coverage August 3, 2026 17:01 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Unit tests August 3, 2026 17:01 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Android problems report August 3, 2026 17:03 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Bundle analyzer August 3, 2026 17:09 Inactive
@renovate
renovate Bot temporarily deployed to 2042: E2E tests August 3, 2026 17:13 Inactive
@renovate
renovate Bot force-pushed the renovate/playwright branch from 7310bc2 to 39e7c70 Compare August 3, 2026 17:36
@renovate
renovate Bot temporarily deployed to 2042: App preview August 3, 2026 17:38 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Unit tests August 3, 2026 17:47 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Coverage August 3, 2026 17:47 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Android problems report August 3, 2026 17:48 Inactive
@renovate
renovate Bot temporarily deployed to 2042: Bundle analyzer August 3, 2026 17:53 Inactive
@renovate
renovate Bot temporarily deployed to 2042: E2E tests August 3, 2026 17:53 Inactive
##### [v1.62.0](https://github.com/microsoft/playwright/releases/tag/v1.62.0)

##### 🧱 New component testing model

[Component testing](https://playwright.dev/docs/test-components) moves to a **stories and galleries** model.
A **story** wraps your component in one specific scenario — hard-coded props, mock data, providers — and a

**gallery** page that you serve renders stories on demand. The new [fixtures.mount()](https://playwright.dev/docs/api/class-fixtures#fixtures-mount) fixture navigates
to the gallery, mounts a story by id, and returns a [Locator](https://playwright.dev/docs/api/class-locator) scoped to the story's root element:

```js
test('click should expand', async ({ mount }) => {
  const component = await mount('components/Expandable/Stateful');
  await component.getByRole('button').click();
  await expect(component.getByTestId('expanded')).toHaveValue('true');
});
```

Pass a story type as a template argument to type-check its props, and use `update(props)` /
`unmount()` on the returned locator to re-render or tear down within a test.

##### 🛑 Cancel operations with AbortSignal

Most operations and web-first assertions now accept a `signal` option that takes an
[`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal), letting you
cancel long-running actions, navigations, waits, and assertions:

```js
const controller = new AbortController();
setTimeout(() => controller.abort(), 1000);

await page.getByRole('button', { name: 'Submit' }).click({ signal: controller.signal });
await expect(page.getByText('Done')).toBeVisible({ signal: controller.signal });
```

Providing a signal does not disable the default timeout; pass `timeout: 0` to disable it.

##### 🖼️ WebP screenshots

[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)
can now store snapshots in the WebP format — just give the snapshot a `.webp` name:

```js
// Visual comparisons store the golden snapshot as lossless WebP.
await expect(page).toHaveScreenshot('homepage.webp');

// Standalone screenshots can trade quality for size with lossy WebP.
await page.screenshot({ path: 'homepage.webp', quality: 50 });
```

[page.screenshot()](https://playwright.dev/docs/api/class-page#page-screenshot) and [locator.screenshot()](https://playwright.dev/docs/api/class-locator#locator-screenshot) also accept `webp` as a `type`,
where quality `100` (the default) is lossless and lower values use lossy compression.

##### 🧩 Custom test filtering with Reporter.preprocess()

New [reporter.preprocess()](https://playwright.dev/docs/api/class-reporter#reporter-preprocess) hook runs after the configuration is resolved and before
[reporter.onBegin()](https://playwright.dev/docs/api/class-reporter#reporter-on-begin), letting a reporter mark individual tests as skipped, excluded,
fixed, or failing through a [TestRun](https://playwright.dev/docs/api/class-testrun) object:

```js
class MyReporter {
  async preprocess({ config, suite, testRun }) {
    for (const test of suite.allTests()) {
      if (shouldSkip(test))
        testRun.skip(test);
    }
  }
}
```

##### 🔁 Isolated retries

New [testConfig.retryStrategy](https://playwright.dev/docs/api/class-testconfig#test-config-retry-strategy) controls when failed tests are retried. The default
`'immediate'` retries as soon as a worker is free; `'isolated'` runs all retries at the end,
one by one in a single worker, to minimize interference with the rest of the suite:

```js
// playwright.config.ts
export default defineConfig({
  retries: 2,
  retryStrategy: 'isolated',
});
```

##### New APIs

##### Browser and Context

- New option [`credentials`](https://playwright.dev/docs/api/class-browsercontext#browser-context-storage-state-option-credentials) includes the context's virtual WebAuthn [Credentials](https://playwright.dev/docs/api/class-credentials) (passkeys) in the storage state, so they can be persisted and re-seeded into later contexts.

##### Actions

- New `scroll` option (`"auto"` | `"none"`) on actions to opt out of Playwright's automatic scroll-into-view.

##### Network

- New [apiResponse.timing()](https://playwright.dev/docs/api/class-apiresponse#api-response-timing) returns resource timing information for an API response.

##### Evaluation

- New [locator.waitForFunction()](https://playwright.dev/docs/api/class-locator#locator-wait-for-function) waits until a function — called with the matching element — returns a truthy value.
- [page.evaluate()](https://playwright.dev/docs/api/class-page#page-evaluate) and related methods now accept functions as evaluate arguments.
- [page.addInitScript()](https://playwright.dev/docs/api/class-page#page-add-init-script) / [browserContext.addInitScript()](https://playwright.dev/docs/api/class-browsercontext#browser-context-add-init-script) now accept functions as init-script arguments.

##### Command line & MCP

- Playwright now bundles the [Playwright MCP](https://playwright.dev/docs/getting-started-mcp) server and [`playwright-cli`](https://playwright.dev/docs/getting-started-cli), runnable via `npx playwright mcp` and `npx playwright cli`.

##### Reporters

- The HTML report's **Merge files** grouping — previously only a UI toggle — can now be enabled from the config with the new `mergeFiles` reporter option:

```js
// playwright.config.ts
export default defineConfig({
  reporter: [['html', { mergeFiles: true }]],
});
```

##### Announcements

- ⚠️ Debian 11 is not supported anymore.

##### Browser Versions

- Chromium 151.0.7922.34
- Mozilla Firefox 153.0
- WebKit 26.5

This version was also tested against the following stable channels:

- Google Chrome 151
- Microsoft Edge 151
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

notifications-off Dont send pushbullet notifications for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant