microsoft/playwright (@playwright/test)
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
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 compare
inputplaceholder - Added environment variable
PLAYWRIGHT_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
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
Compare Source
New APIs
- New PropertytestStepInfo.titlePath Returns the full title path starting from the test file, including test and step titles.
Codegen
- Automatic
toBeVisible() 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
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
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
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
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
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
Compare Source
Trace Viewer and HTML Reporter Updates
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
Compare Source
Highlights
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 option
maxRedirects 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 the
Cookie 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
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
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.

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:

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
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
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 of
canvas 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
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
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-canarymsedge,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
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
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
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
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
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
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

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
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
- The
mcr.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 option
behavior inpage.removeAllListeners(),browser.removeAllListeners() andbrowserContext.removeAllListeners() to wait for ongoing listeners to complete. - TLS client certificates can now be passed from memory by passing
cert andkey as buffers instead of file paths. - Attachments with a
text/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 Actions
macos-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
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
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'@​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:
- Call
router.route(url, handler) that behaves similarly topage.route(). - Call
router.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'@​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 the
baseURL.
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'@​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
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
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
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
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 '@​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
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
Uh oh!
There was an error while loading.Please reload this page.
This PR contains the following updates:
1.35.0->1.56.1Release Notes
microsoft/playwright (@playwright/test)
v1.56.1Compare 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
v1.56.0Compare Source
Playwright Agents
Introducing Playwright Agents, three custom agent definitions designed to guide LLMs through the core process of building a Playwright test:
Run
npx playwright init-agentswith your client of choice to generate the latest agent definitions:Learn more about Playwright Agents
New APIs
--test-listand--test-list-invertto allow manual specification of specific tests from a fileUI Mode and HTML Reporter
'html'reporter to disable the "Copy prompt" button'html'reporter and UI Mode to merge files, collapsing test and describe blocks into a single unified list--update-snapshotsoptionsBreaking Changes
Miscellaneous
inputplaceholderPLAYWRIGHT_TESTto Playwright worker processes to allow discriminating on testing statusBrowser Versions
v1.55.1Compare 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
This version was also tested against the following stable channels:
v1.55.0Compare Source
New APIs
Codegen
toBeVisible()assertions: Codegen can now generate automatictoBeVisible()assertions for common UI interactions. This feature can be enabled in the Codegen settings UI.Breaking Changes
Miscellaneous
Browser Versions
This version was also tested against the following stable channels:
v1.54.2Compare 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
This version was also tested against the following stable channels:
v1.54.1Compare Source
Highlights
#36650 - [Regression]: 1.54.0 breaks downloading browsers when an HTTP(S) proxy is used
Browser Versions
This version was also tested against the following stable channels:
v1.54.0Compare Source
Highlights
New cookie property
partitionKeyinbrowserContext.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 option
noSnippetsto disable code snippets in the html report.New property
locationin test annotations, for example intestResult.annotations andtestInfo.annotations. It shows where the annotation liketest.skiportest.fixmewas added.Command Line
New option
--user-data-dirin multiple commands. You can specify the same user data dir to reuse browsing state, like authentication, between sessions.Option
-gvhas been removed from thenpx playwright testcommand. Use--grep-invertinstead.npx playwright opendoes not open the test recorder anymore. Usenpx playwright codegeninstead.Miscellaneous
Browser Versions
This version was also tested against the following stable channels:
v1.53.2Compare 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 using
msRelaunchNoCompatLayerBrowser Versions
This version was also tested against the following stable channels:
v1.53.1Compare Source
Highlights
#36339 - [Regression]: Click can fail when scrolling required
#36307 - [Regression (Chromium)]: Under some scenarios filling a
textareadoesn't fill#36294 - [Regression (Firefox)]:
setViewportSizetimes out#36350 - [Fix]: Display HTTP method for fetch trace entries
Browser Versions
This version was also tested against the following stable channels:
v1.53.0Compare Source
Trace Viewer and HTML Reporter Updates
New Steps in Trace Viewer and HTML reporter:
New option in
'html'reporter to set the title of a specific test run:Miscellaneous
New option
kindintestInfo.snapshotPath() controls which snapshot path template is used.New methodlocator.describe() to describe a locator. Used for trace viewer and reports.
npx playwright install --listwill now list all installed browsers, versions and locations.Browser Versions
This version was also tested against the following stable channels:
v1.52.0Compare Source
Highlights
New methodexpect(locator).toContainClass() to ergonomically assert individual class names on the element.
Aria Snapshots got two new properties:
/childrenfor strict matching and/urlfor links.Test Runner
--fail-on-flaky-tests. This is useful for CI/CD environments where you want to ensure that all tests are stable before deploying.Miscellaneous
maxRedirectsinapiRequest.newContext() to control the maximum number of redirects.!@​my-tagor!my-file.spec.tsor!p:my-project.Breaking Changes
?wildcard is not supported any more, it will always match question mark?character.[]are not supported anymore. We recommend using regular expressions instead.Cookieheader anymore. If aCookieheader is provided, it will be ignored, and the cookie will be loaded from the browser's cookie store. To set custom cookies, usebrowserContext.addCookies().Browser Versions
This version was also tested against the following stable channels:
v1.51.1Compare 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
This version was also tested against the following stable channels:
v1.51.0Compare Source
StorageState for indexedDB
New option
indexedDBforbrowserContext.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:
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.
Filter visible elements
New option
visibleforlocator.filter() allows matching only visible elements.Git information in HTML report
Set optiontestConfig.captureGitInfo to capture git information intotestConfig.metadata.
HTML report will show this information when available:
Test Step improvements
A newTestStepInfo object is now available in test steps. You can add step attachments or skip the step under some conditions.
Miscellaneous
contrastfor methodspage.emulateMedia() andbrowser.newContext() allows to emulate theprefers-contrastmedia feature.failOnStatusCodemakes all fetch requests made through theAPIRequestContext throw on response codes other than 2xx and 3xx.Browser Versions
This version was also tested against the following stable channels:
v1.50.1Compare 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
This version was also tested against the following stable channels:
v1.50.0Compare Source
Test runner
New option
timeoutallows specifying a maximum run time for an individual test step. A timed-out step will fail the execution of the test.New methodtest.step.skip() to disable execution of a test step.
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 enum
changed.changedupdates only the snapshots that have changed, whereasallnow updates all snapshots, regardless of whether there are any differences.New optiontestConfig.updateSourceMethod defines the way source code is updated whentestConfig.updateSnapshots is configured. Added
overwriteand3-waymodes that write the changes into source code, on top of existingpatchmode that creates a patch file.npx playwrighttest --update-snapshots=changed --update-source-method=3wayOptiontestConfig.webServer added a
gracefulShutdownfield 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 option
pathTemplatefortoHaveScreenshotandtoMatchAriaSnapshotassertions in thetestConfig.expect configuration.UI updates
canvascontent in traces is error-prone. Display is now disabled by default, and can be enabled via theDisplay canvas contentUI setting.CallandNetworkpanels now display additional time information.Breaking
<input>,<select>, or a number of other editable elements.all, rather than only the failed/changed snapshots. Use the new enumchangedto keep the old functionality of only updating the changed snapshots.Browser Versions
This version was also tested against the following stable channels:
v1.49.1Compare 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
This version was also tested against the following stable channels:
v1.49.0Compare Source
Aria snapshots
New assertionexpect(locator).toMatchAriaSnapshot() verifies page structure by comparing to an expected accessibility tree, represented as YAML.
You can generate this assertion withTest Generator and update the expected snapshot with
--update-snapshotscommand line flag.Learn more in thearia snapshots guide.
Test runner
tsconfigto be used for all tests.'on-first-failure'fortestOptions.screenshot.Error.cause.Breaking: channels
chrome,msedgeand similar switch to new headlessThis change affects you if you're using one of the following channels in your
playwright.config.ts:chrome,chrome-dev,chrome-beta, orchrome-canarymsedge,msedge-dev,msedge-beta, ormsedge-canaryWhat 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
@playwright/experimental-ct-vue2will no longer be updated.@playwright/experimental-ct-solidwill 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: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.
Miscellaneous
<canvas>elements inside a snapshot now draw a preview.Browser Versions
This version was also tested against the following stable channels:
v1.48.2Compare 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
This version was also tested against the following stable channels:
v1.48.1Compare 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
This version was also tested against the following stable channels:
v1.48.0Compare 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".SeeWebSocketRoute for more details.
UI updates
Miscellaneous
formand similar ones now acceptFormData.locationto pass custom step location.Browser Versions
This version was also tested against the following stable channels:
v1.47.2Compare 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
This version was also tested against the following stable channels:
v1.47.1Compare 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
This version was also tested against the following stable channels:
v1.47.0Compare Source
Network Tab improvements
The Network tab in the UI mode and trace viewer has several nice improvements:
Credit to@kubajanik for these wonderful improvements!
--tsconfigCLI optionBy 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:
APIRequestContext now accepts
URLSearchParamsandstringas query parametersYou can now pass
URLSearchParamsandstringas query parameters toAPIRequestContext:Miscellaneous
mcr.microsoft.com/playwright:v1.47.0now serves a Playwright image based on Ubuntu 24.04 Noble.To use the 22.04 jammy-based image, please use
mcr.microsoft.com/playwright:v1.47.0-jammyinstead.:latest/:focal/:jammytag for Playwright Docker images is no longer being published. Pin to a specific version for better stability and reproducibility.behaviorinpage.removeAllListeners(),browser.removeAllListeners() andbrowserContext.removeAllListeners() to wait for ongoing listeners to complete.certandkeyas buffers instead of file paths.text/htmlcontent 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.noWaitAfterinlocator.selectOption() was deprecated.macos-13. We recommend upgrading GitHub Actions tomacos-14.Browser Versions
This version was also tested against the following stable channels:
v1.46.1Compare 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
This version was also tested against the following stable channels:
v1.46.0Compare 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 for
https://example.com:You can also provide client certificates to a particulartest project or as a parameter ofbrowser.newContext() andapiRequest.newContext().
--only-changedcli optionNew CLI option
--only-changedallows to only run test files that have been changed since the last git commit or from a specific git "ref".Component Testing: New
routerfixtureThis release introduces an experimental
routerfixture to intercept and handle network requests in component testing.There are two ways to use the router fixture:
router.route(url, handler)that behaves similarly topage.route().router.use(handlers)and passMSW library request handlers to it.Here is an example of reusing your existing MSW handlers in the test.
This fixture is only available incomponent tests.
UI Mode / Trace Viewer Updates
baseURL.Miscellaneous
maxRetriesoption inapiRequestContext.fetch() which retries on theECONNRESETnetwork error.Possibly breaking change
Fixture values that are array of objects, when specified in the
test.use()block, may require being wrapped into a fixture tuple. This is best seen on the example:Browser Versions
This version was also tested against the following stable channels:
v1.45.3Compare 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
This version was also tested against the following stable channels:
v1.45.2Compare 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
This version was also tested against the following stable channels:
v1.45.1Compare 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-reactdoesn't work with VSCode extension and PNPMBrowser Versions
This version was also tested against the following stable channels:
v1.45.0Compare 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:
Seethe clock guide for more details.
Test runner
New CLI option
--fail-on-flaky-teststhat sets exit code to1upon any flaky tests. Note that by default, the test runner exits with code0when all failed tests recovered upon a retry. With this option, the test run will fail in such case.New enviroment variable
PLAYWRIGHT_FORCE_TTYcontrols whether built-inlist,lineanddotreporters 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
Miscellaneous
Methodlocator.setInputFiles() now supports uploading a directory for
<input type=file webkitdirectory>elements.Multiple methods likelocator.click() orlocator.press() now support a
ControlOrMetamodifier key. This key maps toMetaon macOS and maps toControlon Windows and Linux.New property
httpCredentials.sendinapiRequest.newContext() that allows to either always send theAuthorizationheader or only send it in response to401 Unauthorized.New option
reasoninapiRequestContext.dispose() that will be included in the error message of ongoing operations interrupted by the context disposal.New option
hostinbrowserType.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
This version was also tested against the following stable channels:
v1.44.1Compare Source
Highlights
#30779 - [REGRESSION]: When using
video: '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
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.
This PR was generated byMend Renovate. View therepository job log.