Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Update dependency @playwright/test to v1.56.1#46

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
renovate wants to merge1 commit intomaster
base:master
Choose a base branch
Loading
fromrenovate/playwright-monorepo

Conversation

@renovate
Copy link
Contributor

@renovaterenovatebot commentedJun 15, 2023
edited
Loading

This PR contains the following updates:

PackageChangeAgeConfidence
@playwright/test (source)1.35.0 ->1.56.1ageconfidence

Release Notes

microsoft/playwright (@​playwright/test)

v1.56.1

Compare Source

Highlights

#​37871 chore: allow local-network-access permission in chromium
#​37891 fix(agents): remove workspaceFolder ref from vscode mcp
#​37759 chore: rename agents to test agents
#​37757 chore(mcp): fallback to cwd when resolving test config

Browser Versions

  • Chromium 141.0.7390.37
  • Mozilla Firefox 142.0.1
  • WebKit 26.0

v1.56.0

Compare Source

Playwright Agents

Introducing Playwright Agents, three custom agent definitions designed to guide LLMs through the core process of building a Playwright test:

  • 🎭 planner explores the app and produces a Markdown test plan
  • 🎭 generator transforms the Markdown plan into the Playwright Test files
  • 🎭 healer executes the test suite and automatically repairs failing tests

Runnpx playwright init-agents with your client of choice to generate the latest agent definitions:

### Generate agent files for each agentic loop### Visual Studio Codenpx playwright init-agents --loop=vscode### Claude Codenpx playwright init-agents --loop=claude### opencodenpx playwright init-agents --loop=opencode

[!NOTE]
VS Code v1.105 (currently on the VS Code Insiders channel) is needed for the agentic experience in VS Code. It will become stable shortly, we are a bit ahead of times with this functionality!

Learn more about Playwright Agents

New APIs

UI Mode and HTML Reporter

  • Added option to'html' reporter to disable the "Copy prompt" button
  • Added option to'html' reporter and UI Mode to merge files, collapsing test and describe blocks into a single unified list
  • Added option to UI Mode mirroring the--update-snapshots options
  • Added option to UI Mode to run only a single worker at a time

Breaking Changes

Miscellaneous

  • Aria snapshots render and compareinputplaceholder
  • Added environment variablePLAYWRIGHT_TEST to Playwright worker processes to allow discriminating on testing status

Browser Versions

  • Chromium 141.0.7390.37
  • Mozilla Firefox 142.0.1
  • WebKit 26.0

v1.55.1

Compare Source

Highlights

#​37479 - [Bug]: Upgrade Chromium to 140.0.7339.186.
#​37147 - [Regression]: Internal error: step id not found.
#​37146 - [Regression]: HTML reporter displays a broken chip link when there are no projects.
#​37137 - Revert "fix(a11y): track inert elements as hidden".
#​37532 - chore: do not use -k option

Browser Versions

  • Chromium 140.0.7339.186
  • Mozilla Firefox 141.0
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 139
  • Microsoft Edge 139

v1.55.0

Compare Source

New APIs

  • New PropertytestStepInfo.titlePath Returns the full title path starting from the test file, including test and step titles.

Codegen

  • AutomatictoBeVisible() assertions: Codegen can now generate automatictoBeVisible() assertions for common UI interactions. This feature can be enabled in the Codegen settings UI.

Breaking Changes

  • ⚠️ Dropped support for Chromium extension manifest v2.

Miscellaneous

  • Added support for Debian 13 "Trixie".

Browser Versions

  • Chromium 140.0.7339.16
  • Mozilla Firefox 141.0
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 139
  • Microsoft Edge 139

v1.54.2

Compare Source

Highlights

#​36714 - [Regression]: Codegen is not able to launch in Administrator Terminal on Windows (ProtocolError: Protocol error)
#​36828 - [Regression]: Playwright Codegen keeps spamming with selected option
#​36810 - [Regression]: Starting Codegen with target language doesn't work anymore

Browser Versions

  • Chromium 139.0.7258.5
  • Mozilla Firefox 140.0.2
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 140
  • Microsoft Edge 140

v1.54.1

Compare Source

Highlights

#​36650 - [Regression]: 1.54.0 breaks downloading browsers when an HTTP(S) proxy is used

Browser Versions

  • Chromium 139.0.7258.5
  • Mozilla Firefox 140.0.2
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 140
  • Microsoft Edge 140

v1.54.0

Compare Source

Highlights

  • New cookie propertypartitionKey inbrowserContext.cookies() andbrowserContext.addCookies(). This property allows to save and restore partitioned cookies. SeeCHIPS MDN article for more information. Note that browsers have different support and defaults for cookie partitioning.

  • New optionnoSnippets to disable code snippets in the html report.

    import{defineConfig}from'@​playwright/test';exportdefaultdefineConfig({reporter:[['html',{noSnippets:true}]]});
  • New propertylocation in test annotations, for example intestResult.annotations andtestInfo.annotations. It shows where the annotation liketest.skip ortest.fixme was added.

Command Line

  • New option--user-data-dir in multiple commands. You can specify the same user data dir to reuse browsing state, like authentication, between sessions.

    npx playwright codegen --user-data-dir=./user-data
  • Option-gv has been removed from thenpx playwright test command. Use--grep-invert instead.

  • npx playwright open does not open the test recorder anymore. Usenpx playwright codegen instead.

Miscellaneous

  • Support for Node.js 16 has been removed.
  • Support for Node.js 18 has been deprecated, and will be removed in the future.

Browser Versions

  • Chromium 139.0.7258.5
  • Mozilla Firefox 140.0.2
  • WebKit 26.0

This version was also tested against the following stable channels:

  • Google Chrome 140
  • Microsoft Edge 140

v1.53.2

Compare Source

Highlights

#​36317 - [Regression]: Merging pre-1.53 blob reports loses attachments
#​36357 - [Regression (Chromium)]: CDP missing trailing slash
#​36292 - [Bug (MSEdge)]: Edge fails to launch when usingmsRelaunchNoCompatLayer

Browser Versions

  • Chromium 138.0.7204.23
  • Mozilla Firefox 139.0
  • WebKit 18.5

This version was also tested against the following stable channels:

  • Google Chrome 137
  • Microsoft Edge 137

v1.53.1

Compare Source

Highlights

#​36339 - [Regression]: Click can fail when scrolling required
#​36307 - [Regression (Chromium)]: Under some scenarios filling atextarea doesn't fill
#​36294 - [Regression (Firefox)]:setViewportSize times out
#​36350 - [Fix]: Display HTTP method for fetch trace entries

Browser Versions

  • Chromium 138.0.7204.23
  • Mozilla Firefox 139.0
  • WebKit 18.5

This version was also tested against the following stable channels:

  • Google Chrome 137
  • Microsoft Edge 137

v1.53.0

Compare Source

Trace Viewer and HTML Reporter Updates

  • New Steps in Trace Viewer and HTML reporter:New Trace Viewer Steps

  • New option in'html' reporter to set the title of a specific test run:

    import{defineConfig}from'@​playwright/test';exportdefaultdefineConfig({reporter:[['html',{title:'Custom test run #​1028'}]]});

Miscellaneous

  • New optionkind intestInfo.snapshotPath() controls which snapshot path template is used.

  • New methodlocator.describe() to describe a locator. Used for trace viewer and reports.

    constbutton=page.getByTestId('btn-sub').describe('Subscribe button');awaitbutton.click();
  • npx playwright install --list will now list all installed browsers, versions and locations.

Browser Versions

  • Chromium 138.0.7204.4
  • Mozilla Firefox 139.0
  • WebKit 18.5

This version was also tested against the following stable channels:

  • Google Chrome 137
  • Microsoft Edge 137

v1.52.0

Compare Source

Highlights

  • New methodexpect(locator).toContainClass() to ergonomically assert individual class names on the element.

    awaitexpect(page.getByRole('listitem',{name:'Ship v1.52'})).toContainClass('done');
  • Aria Snapshots got two new properties:/children for strict matching and/url for links.

    awaitexpect(locator).toMatchAriaSnapshot(`  - list    - /children: equal    - listitem: Feature A    - listitem:      - link "Feature B":        - /url: "https://playwright.dev"`);

Test Runner

  • New propertytestProject.workers allows to specify the number of concurrent worker processes to use for a test project. The global limit of propertytestConfig.workers still applies.
  • NewtestConfig.failOnFlakyTests option to fail the test run if any flaky tests are detected, similarly to--fail-on-flaky-tests. This is useful for CI/CD environments where you want to ensure that all tests are stable before deploying.
  • New propertytestResult.annotations contains annotations for each test retry.

Miscellaneous

  • New optionmaxRedirects inapiRequest.newContext() to control the maximum number of redirects.
  • HTML reporter now supportsNOT filtering via!@​my-tag or!my-file.spec.ts or!p:my-project.

Breaking Changes

  • Changes to glob URL patterns in methods likepage.route():
    • ? wildcard is not supported any more, it will always match question mark? character.
    • Ranges/sets[] are not supported anymore. We recommend using regular expressions instead.
  • Methodroute.continue() does not allow to override theCookie header anymore. If aCookie header is provided, it will be ignored, and the cookie will be loaded from the browser's cookie store. To set custom cookies, usebrowserContext.addCookies().
  • macOS 13 is now deprecated and will no longer receive WebKit updates. Please upgrade to a more recent macOS version to continue benefiting from the latest WebKit improvements.

Browser Versions

  • Chromium 136.0.7103.25
  • Mozilla Firefox 137.0
  • WebKit 18.4

This version was also tested against the following stable channels:

  • Google Chrome 135
  • Microsoft Edge 135

v1.51.1

Compare Source

Highlights

#​35093 - [Regression]: TimeoutOverflowWarning:2149630.634 does not fit into a 32-bit signed integer
#​35138 - [Regression]: TypeError: Cannot read properties of undefined (reading 'expectInfo')

Browser Versions

  • Chromium 134.0.6998.35
  • Mozilla Firefox 135.0
  • WebKit 18.4

This version was also tested against the following stable channels:

  • Google Chrome 133
  • Microsoft Edge 133

v1.51.0

Compare Source

StorageState for indexedDB

  • New optionindexedDB forbrowserContext.storageState() allows to save and restore IndexedDB contents. Useful when your application usesIndexedDB API to store authentication tokens, like Firebase Authentication.

    Here is an example following theauthentication guide:

    // tests/auth.setup.tsimport{testassetup,expect}from'@​playwright/test';importpathfrom'path';constauthFile=path.join(__dirname,'../playwright/.auth/user.json');setup('authenticate',async({ page})=>{awaitpage.goto('/');// ... perform authentication steps ...// make sure to save indexedDBawaitpage.context().storageState({path:authFile,indexedDB:true});});

Copy prompt

New "Copy prompt" button on errors in the HTML report, trace viewer and UI mode. Click to copy a pre-filled LLM prompt that contains the error message and useful context for fixing the error.

Copy prompt

Filter visible elements

New optionvisible forlocator.filter() allows matching only visible elements.

// example.spec.tstest('some test',async({ page})=>{// Ignore invisible todo items.consttodoItems=page.getByTestId('todo-item').filter({visible:true});// Check there are exactly 3 visible ones.awaitexpect(todoItems).toHaveCount(3);});

Git information in HTML report

Set optiontestConfig.captureGitInfo to capture git information intotestConfig.metadata.

// playwright.config.tsimport{defineConfig}from'@​playwright/test';exportdefaultdefineConfig({captureGitInfo:{commit:true,diff:true}});

HTML report will show this information when available:

Git information in the report

Test Step improvements

A newTestStepInfo object is now available in test steps. You can add step attachments or skip the step under some conditions.

test('some test',async({ page, isMobile})=>{// Note the new "step" argument:awaittest.step('here is my step',asyncstep=>{step.skip(isMobile,'not relevant on mobile layouts');// ...awaitstep.attach('my attachment',{body:'some text'});// ...});});

Miscellaneous

Browser Versions

  • Chromium 134.0.6998.35
  • Mozilla Firefox 135.0
  • WebKit 18.4

This version was also tested against the following stable channels:

  • Google Chrome 133
  • Microsoft Edge 133

v1.50.1

Compare Source

Highlights

#​34483 - [Feature]: single aria snapshot for different engines/browsers
#​34497 - [Bug]: Firefox not handling keepalive: true fetch requests
#​34504 - [Bug]: update snapshots not creating good diffs
#​34507 - [Bug]: snapshotPathTemplate doesnt work when multiple projects
#​34462 - [Bug]: updateSnapshots "changed" throws an error

Browser Versions

  • Chromium 133.0.6943.16
  • Mozilla Firefox 134.0
  • WebKit 18.2

This version was also tested against the following stable channels:

  • Google Chrome 132
  • Microsoft Edge 132

v1.50.0

Compare Source

Test runner

  • New optiontimeout allows specifying a maximum run time for an individual test step. A timed-out step will fail the execution of the test.

    test('some test',async({ page})=>{awaittest.step('a step',async()=>{// This step can time out separately from the test},{timeout:1000});});
  • New methodtest.step.skip() to disable execution of a test step.

    test('some test',async({ page})=>{awaittest.step('before running step',async()=>{// Normal step});awaittest.step.skip('not yet ready',async()=>{// This step is skipped});awaittest.step('after running step',async()=>{// This step still runs even though the previous one was skipped});});
  • Expandedexpect(locator).toMatchAriaSnapshot() to allow storing of aria snapshots in separate YAML files.

  • Added methodexpect(locator).toHaveAccessibleErrorMessage() to assert the Locator points to an element with a givenaria errormessage.

  • OptiontestConfig.updateSnapshots added the configuration enumchanged.changed updates only the snapshots that have changed, whereasall now updates all snapshots, regardless of whether there are any differences.

  • New optiontestConfig.updateSourceMethod defines the way source code is updated whentestConfig.updateSnapshots is configured. Addedoverwrite and3-way modes that write the changes into source code, on top of existingpatch mode that creates a patch file.

    npx playwrighttest --update-snapshots=changed --update-source-method=3way
  • OptiontestConfig.webServer added agracefulShutdown field for specifying a process kill signal other than the defaultSIGKILL.

  • ExposedtestStep.attachments from the reporter API to allow retrieval of all attachments created by that step.

  • New optionpathTemplate fortoHaveScreenshot andtoMatchAriaSnapshot assertions in thetestConfig.expect configuration.

UI updates

  • Updated default HTML reporter to improve display of attachments.
  • New button for picking elements to produce aria snapshots.
  • Additional details (such as keys pressed) are now displayed alongside action API calls in traces.
  • Display ofcanvas content in traces is error-prone. Display is now disabled by default, and can be enabled via theDisplay canvas content UI setting.
  • Call andNetwork panels now display additional time information.

Breaking

Browser Versions

  • Chromium 133.0.6943.16
  • Mozilla Firefox 134.0
  • WebKit 18.2

This version was also tested against the following stable channels:

  • Google Chrome 132
  • Microsoft Edge 132

v1.49.1

Compare Source

Highlights

#​33802 - [Bug]: Codegen's Clear button doesn't work if not recording
#​33806 - [Bug]: playwright hangs while waiting for pending navigations
#​33787 - [Bug]: VSC extension isn't capturing all entered text
#​33788 - [Regression]: Double clicking the steps in trace viewer doesn't filter actions
#​33772 - [Bug]: aria_snapshot generates invalid yaml when combined with an aria-label attribut
#​33791 - [Bug]: text input with number value raises "container is not iterable" with to_match_aria_snapshot
#​33644 - [Bug]: getByRole can't find element with the accessible name from label element when aria-labelledby is not valid
#​33660 - [Regression]: Unable to open Playwright UI in Dark Mode

Browser Versions

  • Chromium 131.0.6778.33
  • Mozilla Firefox 132.0
  • WebKit 18.2

This version was also tested against the following stable channels:

  • Google Chrome 130
  • Microsoft Edge 130

v1.49.0

Compare Source

Aria snapshots

New assertionexpect(locator).toMatchAriaSnapshot() verifies page structure by comparing to an expected accessibility tree, represented as YAML.

awaitpage.goto('https://playwright.dev');awaitexpect(page.locator('body')).toMatchAriaSnapshot(`  - banner:    - heading /Playwright enables reliable/ [level=1]    - link "Get started"    - link "Star microsoft/playwright on GitHub"  - main:    - img "Browsers (Chromium, Firefox, WebKit)"    - heading "Any browser • Any platform • One API"`);

You can generate this assertion withTest Generator and update the expected snapshot with--update-snapshots command line flag.

Learn more in thearia snapshots guide.

Test runner

Breaking: channelschrome,msedge and similar switch to new headless

This change affects you if you're using one of the following channels in yourplaywright.config.ts:

  • chrome,chrome-dev,chrome-beta, orchrome-canary
  • msedge,msedge-dev,msedge-beta, ormsedge-canary
What do I need to do?

After updating to Playwright v1.49, run your test suite. If it still passes, you're good to go. If not, you will probably need to update your snapshots, and adapt some of your test code around PDF viewers and extensions. Seeissue #​33566 for more details.

Other breaking changes

  • There will be no more updates for WebKit on Ubuntu 20.04 and Debian 11. We recommend updating your OS to a later version.
  • Package@playwright/experimental-ct-vue2 will no longer be updated.
  • Package@playwright/experimental-ct-solid will no longer be updated.

Try new Chromium headless

You can opt into the new headless mode by using'chromium' channel. Asofficial Chrome documentation puts it:

New Headless on the other hand is the real Chrome browser, and is thus more authentic, reliable, and offers more features. This makes it more suitable for high-accuracy end-to-end web app testing or browser extension testing.

Seeissue #​33566 for the list of possible breakages you could encounter and more details on Chromium headless. Please file an issue if you see any problems after opting in.

import{defineConfig,devices}from'@​playwright/test';exportdefaultdefineConfig({projects:[{name:'chromium',use:{ ...devices['Desktop Chrome'],channel:'chromium'},},],});

Miscellaneous

  • <canvas> elements inside a snapshot now draw a preview.
  • New methodtracing.group() to visually group actions in the trace.
  • Playwright docker images switched from Node.js v20 to Node.js v22 LTS.

Browser Versions

  • Chromium 131.0.6778.33
  • Mozilla Firefox 132.0
  • WebKit 18.2

This version was also tested against the following stable channels:

  • Google Chrome 130
  • Microsoft Edge 130

v1.48.2

Compare Source

Highlights

#​33141 - [Bug]: UI Mode crashed
#​33219 - [BUG] Trace Viewer PWA crashes with "Aw, Snap!"
#​33086 - [Bug]: UI Mode Memory problem
#​33000 - [Regression]: Inspector and Browser doesn't close on CTRL+C
#​33204 - [Bug]: Chrome tab and inspector not closing after terminating session in terminal

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

Compare Source

Highlights

#​33023 - [Bug]: command line flag --headed has no effect in ui mode
#​33107 - [REGRESSION]: page.waitForRequest does not get resolved since 1.48.0
#​33085 - [Bug]: WebSocket route does not handle full URLs in Playwright
#​33052 - [Regression]: Inspector not showing recorded steps
#​33132 - [Bug]: Wrong Ubuntu release name in Dockerfile.noble
#​32996 - [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

WebSocket routing

New methodspage.routeWebSocket() andbrowserContext.routeWebSocket() allow to intercept, modify and mock WebSocket connections initiated in the page. Below is a simple example that mocks WebSocket communication by responding to a"request" with a"response".

awaitpage.routeWebSocket('/ws',ws=>{ws.onMessage(message=>{if(message==='request')ws.send('response');});});

SeeWebSocketRoute for more details.

UI updates

  • New "copy" buttons for annotations and test location in the HTML report.
  • Route method calls likeroute.fulfill() are not shown in the report and trace viewer anymore. You can see which network requests were routed in the network tab instead.
  • New "Copy as cURL" and "Copy as fetch" buttons for requests in the network tab.

Miscellaneous

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

Compare Source

Highlights

https://redirect.github.com/microsoft/playwright/pull/32699- [REGRESSION]: fix(codegen): use content_frame property in python/.NET
https://redirect.github.com/microsoft/playwright/issues/32706- [REGRESSION]: page.pause() does not pause test timeout after 1.47
#​32661 - 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

Highlights

#​32480 - [REGRESSION]: tsconfig.json's compilerOptions.paths no longer working in 1.47
#​32552 - [REGRESSION]: broken UI in Trace Viewer while showing network response body

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

Compare Source

Network Tab improvements

The Network tab in the UI mode and trace viewer has several nice improvements:

  • filtering by asset type and URL
  • better display of query string parameters
  • preview of font assets

Network tab now has filters

Credit to@​kubajanik for these wonderful improvements!

--tsconfig CLI option

By default, Playwright will look up the closest tsconfig for each imported file using a heuristic. You can now specify a single tsconfig file in the command line, and Playwright will use it for all imported files, not only test files:

### Pass a specific tsconfignpx playwrighttest --tsconfig tsconfig.test.json

APIRequestContext now acceptsURLSearchParams andstring as query parameters

You can now passURLSearchParams andstring as query parameters toAPIRequestContext:

test('query params',async({ request})=>{constsearchParams=newURLSearchParams();searchParams.set('userId',1);constresponse=awaitrequest.get('https://jsonplaceholder.typicode.com/posts',{params:searchParams// or as a string: 'userId=1'});// ...});

Miscellaneous

  • Themcr.microsoft.com/playwright:v1.47.0 now serves a Playwright image based on Ubuntu 24.04 Noble.
    To use the 22.04 jammy-based image, please usemcr.microsoft.com/playwright:v1.47.0-jammy instead.
  • The:latest/:focal/:jammy tag for Playwright Docker images is no longer being published. Pin to a specific version for better stability and reproducibility.
  • New optionbehavior inpage.removeAllListeners(),browser.removeAllListeners() andbrowserContext.removeAllListeners() to wait for ongoing listeners to complete.
  • TLS client certificates can now be passed from memory by passingcert andkey as buffers instead of file paths.
  • Attachments with atext/html content type can now be opened in a new tab in the HTML report. This is useful for including third-party reports or other HTML content in the Playwright test report and distributing it to your team.
  • noWaitAfter inlocator.selectOption() was deprecated.
  • We've seen reports of WebGL in Webkit misbehaving on GitHub Actionsmacos-13. We recommend upgrading GitHub Actions tomacos-14.

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

Compare Source

Highlights

#​32004 - [REGRESSION]: Client Certificates don't work with Microsoft IIS
#​32004 - [REGRESSION]: Websites stall on TLS handshake errors when using Client Certificates
#​32146 - [BUG]: Credential scanners warn about internal socks-proxy TLS certificates
#​32056 - [REGRESSION]: 1.46.0 (TypeScript) - custom fixtures extend no longer chainable
#​32070 - [Bug]: --only-changed flag and project dependencies
#​32188 - [Bug]: --only-changed with shallow clone throws "unknown revision" error

Browser Versions

  • Chromium 128.0.6613.18
  • Mozilla Firefox 128.0
  • WebKit 18.0

This version was also tested against the following stable channels:

  • Google Chrome 127
  • Microsoft Edge 127

v1.46.0

Compare Source

TLS Client Certificates

Playwright now allows to supply client-side certificates, so that server can verify them, as specified by TLS Client Authentication.

When client certificates are specified, all browser traffic is routed through a proxy that establishes the secure TLS connection, provides client certificates to the server and validates server certificates.

The following snippet sets up a client certificate forhttps://example.com:

import{defineConfig}from'@&#8203;playwright/test';exportdefaultdefineConfig({// ...use:{clientCertificates:[{origin:'https://example.com',certPath:'./cert.pem',keyPath:'./key.pem',passphrase:'mysecretpassword',}],},// ...});

You can also provide client certificates to a particulartest project or as a parameter ofbrowser.newContext() andapiRequest.newContext().

--only-changed cli option

New CLI option--only-changed allows to only run test files that have been changed since the last git commit or from a specific git "ref".

### Only run test files with uncommitted changesnpx playwrighttest --only-changed### Only run test files changed relative to the "main" branchnpx playwrighttest --only-changed=main

Component Testing: Newrouter fixture

This release introduces an experimentalrouter fixture to intercept and handle network requests in component testing.
There are two ways to use the router fixture:

  • Callrouter.route(url, handler) that behaves similarly topage.route().
  • Callrouter.use(handlers) and passMSW library request handlers to it.

Here is an example of reusing your existing MSW handlers in the test.

import{handlers}from'@&#8203;src/mocks/handlers';test.beforeEach(async({ router})=>{// install common handlers before each testawaitrouter.use(...handlers);});test('example test',async({ mount})=>{// test as usual, your handlers are active// ...});

This fixture is only available incomponent tests.

UI Mode / Trace Viewer Updates

  • Test annotations are now shown in UI mode.
  • Content of text attachments is now rendered inline in the attachments pane.
  • New setting to show/hide routing actions likeroute.continue().
  • Request method and status are shown in the network details tab.
  • New button to copy source file location to clipboard.
  • Metadata pane now displays thebaseURL.

Miscellaneous

Possibly breaking change

Fixture values that are array of objects, when specified in thetest.use() block, may require being wrapped into a fixture tuple. This is best seen on the example:

import{testasbase}from'@&#8203;playwright/test';// Define an option fixture that has an "array of objects" valuetypeUser={name:string,password:string};consttest=base.extend<{users:User[]}>({users:[[],{option:true}],});// Specify option value in the test.use block.test.use({// WRONG: this syntax may not work for youusers:[{name:'John Doe',password:'secret'},{name:'John Smith',password:'s3cr3t'},],// CORRECT: this syntax will work. Note extra [] around the value, and the "scope" property.users:[[{name:'John Doe',password:'secret'},{name:'John Smith',password:'s3cr3t'},],{scope:'test'}],});test('example test',async()=>{// ...});

Browser Versions

  • Chromium 128.0.6613.18
  • Mozilla Firefox 128.0
  • WebKit 18.0

This version was also tested against the following stable channels:

  • Google Chrome 127
  • Microsoft Edge 127

v1.45.3

Compare Source

Highlights

#​31764 - [Bug]: some actions do not appear in the trace file
microsoft/playwright-java#1617 - [Bug]: Traceviewer not reporting all actions

Browser Versions

  • Chromium 127.0.6533.5
  • Mozilla Firefox 127.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 126
  • Microsoft Edge 126

v1.45.2

Compare Source

Highlights

#​31613 - [REGRESSION]: Trace is not showing any screenshots nor test name
#​31601 - [REGRESSION]: missing trace for 2nd browser
#​31541 - [REGRESSION]: Failing tests have a trace with no images and with steps missing

Browser Versions

  • Chromium 127.0.6533.5
  • Mozilla Firefox 127.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 126
  • Microsoft Edge 126

v1.45.1

Compare Source

Highlights

#​31473 - [REGRESSION]: Playwright raises an error ENOENT: no such file or directory, open 'test-results/.playwright-artifacts-0/hash.zip' with Electron
#​31442 - [REGRESSION]: Locators of elements changing from/to hidden have operations hanging when using--disable-web-security
#​31431 - [REGRESSION]: NewTab doesn't work properly with Chrome with--disable-web-security
#​31425 - [REGRESSION]: beforeEach hooks are not skipped when describe condition depends on fixtures
#​31491 - [REGRESSION]:@playwright/experimental-ct-react doesn't work with VSCode extension and PNPM

Browser Versions

  • Chromium 127.0.6533.5
  • Mozilla Firefox 127.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 126
  • Microsoft Edge 126

v1.45.0

Compare Source

Clock

Utilizing the newClock API allows to manipulate and control time within tests to verify time-related behavior. This API covers many common scenarios, including:

  • testing with predefined time;
  • keeping consistent time and timers;
  • monitoring inactivity;
  • ticking through time manually.
// Initialize clock and let the page load naturally.awaitpage.clock.install({time:newDate('2024-02-02T08:00:00')});awaitpage.goto('http://localhost:3333');// Pretend that the user closed the laptop lid and opened it again at 10am,// Pause the time once reached that point.awaitpage.clock.pauseAt(newDate('2024-02-02T10:00:00'));// Assert the page state.awaitexpect(page.getByTestId('current-time')).toHaveText('2/2/2024, 10:00:00 AM');// Close the laptop lid again and open it at 10:30am.awaitpage.clock.fastForward('30:00');awaitexpect(page.getByTestId('current-time')).toHaveText('2/2/2024, 10:30:00 AM');

Seethe clock guide for more details.

Test runner

  • New CLI option--fail-on-flaky-tests that sets exit code to1 upon any flaky tests. Note that by default, the test runner exits with code0 when all failed tests recovered upon a retry. With this option, the test run will fail in such case.

  • New enviroment variablePLAYWRIGHT_FORCE_TTY controls whether built-inlist,line anddot reporters assume a live terminal. For example, this could be useful to disable tty behavior when your CI environment does not handle ANSI control sequences well. Alternatively, you can enable tty behavior even when to live terminal is present, if you plan to post-process the output and handle control sequences.

Avoid TTY features that output ANSI control sequences

PLAYWRIGHT_FORCE_TTY=0 npx playwright test

Enable TTY features, assuming a terminal width 80

PLAYWRIGHT_FORCE_TTY=80 npx playwright test

- New options [testConfig.respectGitIgnore](https://playwright.dev/docs/api/class-testconfig#test-config-respect-git-ignore) and [testProject.respectGitIgnore](https://playwright.dev/docs/api/class-testproject#test-project-respect-git-ignore) control whether files matching `.gitignore` patterns are excluded when searching for tests.- New property `timeout` is now available for custom expect matchers. This property takes into account `playwright.config.ts` and `expect.configure()`.```tsimport { expect as baseExpect } from '@&#8203;playwright/test';export const expect = baseExpect.extend({  async toHaveAmount(locator: Locator, expected: number, options?: { timeout?: number }) {    // When no timeout option is specified, use the config timeout.    const timeout = options?.timeout ?? this.timeout;    // ... implement the assertion ...  },});

Miscellaneous

  • Methodlocator.setInputFiles() now supports uploading a directory for<input type=file webkitdirectory> elements.

    awaitpage.getByLabel('Upload directory').setInputFiles(path.join(__dirname,'mydir'));
  • Multiple methods likelocator.click() orlocator.press() now support aControlOrMeta modifier key. This key maps toMeta on macOS and maps toControl on Windows and Linux.

    // Press the common keyboard shortcut Control+S or Meta+S to trigger a "Save" operation.awaitpage.keyboard.press('ControlOrMeta+S');
  • New propertyhttpCredentials.send inapiRequest.newContext() that allows to either always send theAuthorization header or only send it in response to401 Unauthorized.

  • New optionreason inapiRequestContext.dispose() that will be included in the error message of ongoing operations interrupted by the context disposal.

  • New optionhost inbrowserType.launchServer() allows to accept websocket connections on a specific address instead of unspecified0.0.0.0.

  • Playwright now supports Chromium, Firefox and WebKit on Ubuntu 24.04.

  • v1.45 is the last release to receive WebKit update for macOS 12 Monterey. Please update macOS to keep using the latest WebKit.

Browser Versions

  • Chromium 127.0.6533.5
  • Mozilla Firefox 127.0
  • WebKit 17.4

This version was also tested against the following stable channels:

  • Google Chrome 126
  • Microsoft Edge 126

v1.44.1

Compare Source

Highlights

#​30779 - [REGRESSION]: When usingvideo: 'on' with VSCode extension the browser got closed
#​30755 - [REGRESSION]: Electron launch with spaces inside executablePath didn't work
#​30770 - [REGRESSION]: Mask elements outside of viewport when creating fullscreen screenshots didn't work
#​30858 - [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

T


Configuration

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

🚦Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕Ignore: Close this PR and you won't be reminded about this update again.


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

This PR was generated byMend Renovate. View therepository job log.

@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.35.1Update dependency @playwright/test to v1.36.0Jul 11, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch fromff509c1 to372fa10CompareJuly 11, 2023 19:15
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.36.0Update dependency @playwright/test to v1.36.1Jul 14, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from372fa10 tof75e062CompareJuly 14, 2023 21:21
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.36.1Update dependency @playwright/test to v1.36.2Jul 25, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch fromf75e062 to9d94e12CompareJuly 25, 2023 11:26
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.36.2Update dependency @playwright/test to v1.37.0Aug 11, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from9d94e12 to892239aCompareAugust 11, 2023 01:54
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.37.0Update dependency @playwright/test to v1.37.1Aug 17, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from892239a tode03feaCompareAugust 17, 2023 21:11
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.37.1Update dependency @playwright/test to v1.38.0Sep 14, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch fromde03fea to206a74cCompareSeptember 14, 2023 00:18
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.38.0Update dependency @playwright/test to v1.38.1Sep 21, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from206a74c to82a0e60CompareSeptember 21, 2023 22:17
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.38.1Update dependency @playwright/test to v1.39.0Oct 12, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from82a0e60 to6a496e0CompareOctober 12, 2023 00:28
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.39.0Update dependency @playwright/test to v1.40.0Nov 17, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from6a496e0 to650e73cCompareNovember 17, 2023 02:05
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.40.0Update dependency @playwright/test to v1.40.1Nov 29, 2023
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from650e73c toa776435CompareNovember 29, 2023 04:05
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch froma776435 to036419bCompareJanuary 16, 2024 21:01
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.40.1Update dependency @playwright/test to v1.41.0Jan 16, 2024
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from036419b to95911feCompareJanuary 20, 2024 01:55
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.41.0Update dependency @playwright/test to v1.41.1Jan 20, 2024
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from95911fe tofb40d5cCompareFebruary 1, 2024 21:02
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.41.1Update dependency @playwright/test to v1.41.2Feb 1, 2024
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.41.2Update dependency @playwright/test to v1.42.0Feb 27, 2024
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch 2 times, most recently frome261c0d toe9d512dCompareMarch 2, 2024 00:47
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.42.0Update dependency @playwright/test to v1.42.1Mar 2, 2024
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.49.1Update dependency @playwright/test to v1.50.0Jan 23, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch fromd60d0c5 toaa320d8CompareJanuary 31, 2025 21:38
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.50.0Update dependency @playwright/test to v1.50.1Jan 31, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch fromaa320d8 tod290b06CompareMarch 6, 2025 18:43
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.50.1Update dependency @playwright/test to v1.51.0Mar 6, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch fromd290b06 to84447bfCompareMarch 17, 2025 23:34
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.51.0Update dependency @playwright/test to v1.51.1Mar 17, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from84447bf to3970260CompareApril 17, 2025 18:59
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.51.1Update dependency @playwright/test to v1.52.0Apr 17, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from3970260 to7f2dff4CompareJune 10, 2025 19:41
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.52.0Update dependency @playwright/test to v1.53.0Jun 10, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from7f2dff4 to6b897adCompareJune 18, 2025 21:01
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.53.0Update dependency @playwright/test to v1.53.1Jun 18, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from6b897ad to5600e0fCompareJune 30, 2025 21:45
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.53.1Update dependency @playwright/test to v1.53.2Jun 30, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from5600e0f to97b4c05CompareJuly 10, 2025 13:04
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.53.2Update dependency @playwright/test to v1.54.0Jul 10, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from97b4c05 to00ed1ecCompareJuly 11, 2025 16:39
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.54.0Update dependency @playwright/test to v1.54.1Jul 11, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from00ed1ec to1269cccCompareAugust 7, 2025 11:39
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.54.1Update dependency @playwright/test to v1.54.2Aug 7, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from1269ccc to06b316eCompareAugust 20, 2025 13:47
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.54.2Update dependency @playwright/test to v1.55.0Aug 20, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch from06b316e tof93b21fCompareSeptember 23, 2025 13:44
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.55.0Update dependency @playwright/test to v1.55.1Sep 23, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch fromf93b21f toe5221a8CompareOctober 6, 2025 18:09
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.55.1Update dependency @playwright/test to v1.56.0Oct 6, 2025
@renovaterenovatebotforce-pushed therenovate/playwright-monorepo branch frome5221a8 to96ca746CompareOctober 17, 2025 02:32
@renovaterenovatebot changed the titleUpdate dependency @playwright/test to v1.56.0Update dependency @playwright/test to v1.56.1Oct 17, 2025
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant


[8]ページ先頭

©2009-2025 Movatter.jp