NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1294 most downloaded on npm
A high-level API to automate web browsers
Last release today
06 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
5717 releases · first in 2017
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
bbb411a9 - cherrypick(release-1.7): fix(webkit): properly detect arm64 on apple silicon (#4796) 883ed59d - chore: mark v1.7.1 (#4792) 64c8639c - cherr
Selectors and arm64 bugfixes.
<details> <summary><b>Issues Closed (2)</b></summary>
#4742 - [REGRESSION]: css/xpath selector engines don't work when chained with >> #4774 - [REGRESSION] Custom selectors no longer able to be last in group
</details>
<details> <summary><b>Commits (4)</b></summary>
bbb411a9 - cherrypick(release-1.7): fix(webkit): properly detect arm64 on apple silicon (#4796) 883ed59d - chore: mark v1.7.1 (#4792) 64c8639c - cherrypick(release-1.7): fix(selector): bring back v1 query logic (#4791) 29568e8b - fix(selectors): text engine after capture matches scope (#4749)
</details>
Nothing published for this version
Nothing published for this version
New Java SDK: Playwright for Java is now on par with JavaScript, Python and C# bindings.
browserContext.storageState() to get current state for later reusestorageState option in browser.newContext() and browser.newPage() to setup browser context state<details> <summary><b>Issues Closed (56)</b></summary>
#647 - Other Browsers #1129 - [Feature] Browser context serialization to support local storage #1677 - [Internal] Run applicable tests for iframes and oopifs #1960 - [BUG] Playwright in Storybook #2274 - [Bug] running tests in parallel in Docker lead to page crashes #2352 - [BUG] page.emulateMedia colorScheme has no effect in firefox without reload #2360 - [BUG] Checkbox wont check unless force parameter is passed on #2409 - [BUG] UnhandledPromiseRejectionWarning: Error: by Firefox and web kit. #2415 - [BUG] Serviceworker shows wrong request.referrer in Playwright #2425 - [Feature] Support Socks5 with auth #2426 - [Question] How can we touch a button on screen ? #2646 - [Question] Ci/Cd using AWS Codebuild/Codepipeline #2698 - [BUG] Chromium headless on Windows does not launch without --disable-gpu #2748 - [BUG] Chromium fails to connect in CI most of the times #2761 - Playwright API v1: shortcomings #2768 - [BUG] Click doesn't work properly if page is zoomed in #3148 - [Question] Issue with launching Chromium in headful mode #3152 - [BUG] Firefox multi page screenshots and focus ring #3244 - [Question] Allow Multiple Downloads Notification #3261 - [BUG] State of WebKit video codecs #3284 - [BUG] MS Edge Chromium crashes on closing in headless mode #3318 - [Feature] SSR on playwright.dev #3337 - [REGRESSION]: NS_ERROR_FILE_ALREADY_EXISTS with Firefox sporadically #3347 - [Feature] CSS.forcePseudoState #3498 - [Question] How to manually download file (donwload dialog) ? #3509 - [Question] Is it possible to set AlwaysOpenPdfExternally #3552 - [Question] First-class test runner support #3726 - [BUG] Playwright-core - page.waitForEvent: Timeout 30000ms exceeded #3871 - [BUG] Always failed in CircleCI #3901 - [Feature] APIs for getting values from the page #3990 - [BUG] AvailWidth/Height #4037 - [BUG] Edge does not report request payload #4075 - [Question] Run headless Firefox with non-default executable path #4112 - [Feature] pass args to new context #4117 - I am trying to use a proxy in Webkit and when I redirect once it loses the proxy. What am I doing wrong? #4124 - [BUG] page.click() is inconsistent in large webapp #4203 - [BUG] Using a typescript version thats too old gives a bad error message #4235 - [Question] How to fight web app (Salesforce) pausing due to window/tab not in focus #4242 - [BUG] Helpful error message for lockfile #4254 - [Question] Will node js be updated to 14 lts in docker image? #4269 - [Feature] Export credential #4297 - [BUG] Twitter timeout error on firefox #4320 - [DevOps] GitHub Dependency graph does not work #4345 - [Bug] Initial browser launch time inconsistent #4381 - [Question] Is there an API endpoint to get the binary download URLs? #4398 - [Question] wait until all of elements appear #4432 - [Question] - Firefox.launch.Process failed to launch! No space left on device. #4433 - [Types] Page.waitForResponse() urlOrPredicate use typed function #4439 - [REGRESSION]: self signed certificate in certificate chain -> Error with installation #4445 - [BUG] Unknown scheme for WebSocket.listenerCount #4461 - [BUG] Error when using PM2 process manager in cluster mode #4465 - [BUG] MS Edge Chromium cannot end msedge.exe processes in HEAD mode #4467 - [BUG] Can't connect to running browserServer from another process #4472 - [BUG] Crash when opening a new tab from UI #4486 - [Question] chromium with head #4487 - [BUG] Playwright not intercepting fetch requests in WebWorker
</details> <details> <summary><b>Commits (193)</b></summary>
e91eee84 - chore: cut v1.7.0 (#4705) e6c206ed - chore: update PrintDeps.exe to r1004 (#4709) c5bb08c5 - docs: remove outdated troubleshooting (#4706) 8d574a76 - docs: update docker readme 4799e8f2 - feat(adb): add screenshot (#4701) 1596b53d - test(adb): fix browser tests (#4700) f89dcc7b - feat(adb): implement push (#4697) b8112ded - devops: fix Android tests on GHA (#4698) f4eff4db - devops: add bot to test Android (#4693) 67f92be3 - chore(deps): bump ini from 1.3.5 to 1.3.8 (#4692) 844b2c8f - chore(adb): lint the driver (#4696) ad5309ca - feat(adb): make shell return binary (#4695) 7c89ec05 - feat(adb): expose a11y tree (#4694) 1b7fb7d5 - feat(android): expose installAPK(path) and ADB socket (#4689) 6cc695d9 - test(adb): fix the adb tests (#4691) 2ba60e92 - test(adb): add some adb tests (#4679) aa1b546b - chore(android): respect timeout, add build script (#4690) f20518f2 - fix(har): do not complain about a lot of listeners (#4675) 765b0778 - feat: start downloading arm64 Chromium builds (#4681) 616df7d2 - fix(adb): minor fixes (#4678) 495085cb - fix(chromium): make interception work with dedicated workers (#4658) b9c95976 - feat(selectors): optimize old->new conversion for css (#4672) e97ab7e4 - test: unflake some web socket tests (#4673) 12dc04a3 - feat(selectors): optimize old->new selectors conversion for text (#4671) c8e9b054 - feat(selectors): disable proximity selectors (#4659) 84ff20f1 - test: fix test server on Node 15 (#4668) b486e840 - devops: revert ability to skip architecture enforcement (#4667) 4f3f6267 - chore: add dummy package.json's for GH dependents analysis (#4666) 8fc49c98 - feat(adb): support webviews (#4657) f939fdc1 - feat(firefox): bump to 1221 (#4656) b67e0221 - feat(selectors): update new text selector (#4654) aacd8e63 - chore: expose adb devices and actions (#4647) ab44d682 - feat(selectors): remove index for now, add documentation (#4640) 1d90d7a9 - feat: fix browser installation on mac 11.0-arm64 (#4652) e0a02c3f - feat(webkit): bump to 1402 (#4651) bc0af57a - feat: support download of native WebKit build for Apple M1 (#4648) add7ce7f - devops: fix buildbot mac m1 name c36af734 - devops: add old-fashioned scripts to run Mac M1 buildbot (#4649) 93c362de - devops: fix architecture enforcement (#4645) 6d3278f1 - devops: add ability to skip architecture enforcement (#4644) dd9c312b - devops: start producing WebKit builds for Apple Silicon (#4643) 64a2940a - devops: fix webkit archiving (#4642) 17f1b20f - devops: trigger all builds with new windows buildbot (#4638) 6c4d3b86 - chore(docker): put browser deps instructions first (#4637) c1dcef39 - devops(windows): fix vswhere location (#4636) 99b98d62 - browser(webkit): do not spam stderr with screencast debug logs (#4635) 1060fce0 - feat(selectors): explicit list of custom functions (#4629) be16ce4b - feat(errors): append recent browser logs when browser disconnects (#4625) e1e000d2 - browser(firefox): do not spam stderr with screencast logs (#4630) ea833daa - chore: fix internal binding (#4598) 1e754a4d - feat(selectors): proximity selectors (#4614) c36f5fa3 - feat(chromium): roll to 833159 (#4626) 18b565a9 - feat(selectors): correctly work in large DOM (#4628) 73982834 - devops: absolute paths for webkit libraries and output directory (#4627) 20201310 - feat(firefox): roll Firefox to r1218 (#4620) e8dcd876 - browser(chromium): build 833159 (#4623) e75ebc17 - browser(firefox): roll Firefox to Dec, 7 2020 (#4622) 4be41f25 - browser(webkit): build fix, switch to the new download API (#4621) d8520f06 - devops: fix webkit building on windows (#4618) 13e2ef1d - devops: suppport WK_CHECKOUT_PATH variable (#4617) 71b7b488 - chore: use Node.js 14 (new LTS) in Docker image (#4262) 1e0ab79f - feat(selectors): add visible and index engines (#4595) a3a31bc8 - doc: add the mobile.md doc (#4612) 1717cbd3 - doc: describe return value as a part of method (#4608) cdd9fd6b - test(click): add a failing test for click w/ scroll (#4606) 6fe7d9c1 - devops: support FF_CHECKOUT_PATH to customize browser checkout (#4607) 96a1f79e - docs: reformat api-body to allow multiline params documentation (#4604) b6eb8e0a - browser(webkit): fix mac build (#4605) 8218a71a - feat(selectors): add more tests for css selectors (#4596) cdbc96ac - browser(webkit): roll to 12-04 (#4601) aed3d14b - test: unflake "should not result in unhandled rejection" (#4602) bf7dff80 - chore: remove the --only-update-browsers option 20c17d54 - chore: fix the doclint tests 7dc386fa - browser(webkit): produce xcode 12.2 build on Mac 10.15 (#4599) 150d778c - docs: disambiguate events (#4597) 8551fff4 - browser(firefox): disable cross-process navigation (#4594) 761b78ef - docs: generate links based on the method names (#4593) 49a3f943 - feat(selectors): switch to the new engine (#4589) 7213794a - Correct typo in "emulateMedia" call example. (#4592) 2452d07f - docs: generate method signatures in docs (#4590) 0eb6f856 - docs: pretty-print api.md (#4588) 5d47a974 - docs: reformat template parameters (#4587) 016925cd - feat(selectors): implement builtin selectors in new evaluator (#4579) 3121de40 - test: remove tests for SelectorEngine.create (#4580) 7e30669e - fix(binding): catch binding resolution against the closed page (#4583) 5002b83b - test(focus): add a failing focus test (#4581) 5a537413 - fix(lint): property waitForResponse type (#4582) bc701629 - fix(doclint): exit 1 when doclint throws an error (#4572) d2b7e0d1 - fix(types): add typed cb for Page.waitForResponse (#4575) 95c502d2 - docs: use templates to reuse documentation properties (#4578) 31e22dee - devops(win): fix paths to vswhere.exe in 64-bit shells (#4577) 3d6194e8 - feat(selectors): introduce css evaluator (#4573) 52ae218b - fix(fill): allow filling more input types (#4563) 1fa7e86e - docs: generate api.md (#4576) f5c8e1d3 - link: make lint happy 3624e3e3 - chore: add internal method for utility context bindings (#4566) 1ca30fe6 - chore: force lo dpi recording on non-mac (#4557) a45532fd - feat(selectors): update css parser (#4565) 3846d05f - feat(firefox): bump to 1217 (#4560) 9c677f64 - feat(webkit): roll webkit to r1395 (#4550) e8419f85 - browser(firefox): support alertCheck and confirmCheck dialogs (#4553) e98aceb9 - feat(selectors): introduce css parser (#4522) 84dc441a - feat(trace): record traces when PW_TRACE_DIR is set (#4545) d116787a - fix(lint): update check_deps for src/remote (#4547) 512516c9 - browser(webkit): retore changes from #4539 (#4544) 8f70c95d - browser(webkit): roll to 11-30 (#4541) 730f6f87 - browser(firefox): roll Firefox to beta Nov 30, 2020 (#4542) d104591a - devops(flakiness): azure function to store dashboard in a new format (#4540) d96330bb - browser(webkit): override availWidth with screen width (#4539) 884edbb3 - fix(channels): only send protocol methods to connection (#4493) 7d90f5ef - feat(firefox): roll Firefox to r1215 (#4526) 8cc8b777 - docs: fix auth example (#4528) 62f7437a - test: remove the flaky test we are not going to fix (#4527) 51865fe5 - chore: bump WebKit build number to test self-hosted runners (#4525) bab16a5c - devops: remove self-hosted runners (#4524) d06afadb - browser(firefox): send dragend after drop and survive navigations (#4506) c6d5bc30 - test(drag): more tests for drag and drop (#4508) 60103229 - test: unflake some chromium tests (#4521) 566c57ee - fix(lint): remove unused import in resource-timing.spec.ts (#4520) 5976e5dc - feat(firefox): roll Firefox to r1213 (#4514) 2486a4fb - chore: fix lint after #4517 (#4518) 062ec7e4 - test: enable resource-timing test on BigSur (#4517) f916c980 - chore: update WebKit version to 14.1 (#4515) 17bec4f6 - browser(firefox): rebaseline atop of Nov, 23 2020 (#4516) e9060dd6 - fix(launchServer): wait for the server to start before taking its address (#4513) 4f4a7ce5 - test: add test for network interception in web workers (#4490) 06e0aa40 - devops: add source code for flakiness dashboard (#4479) e72d9a41 - chore: add websocket connection mode (#4510) 14a96ca2 - browser(firefox): ensure detachedFromTarget is always sent (#4505) a0587949 - feat(chromium): roll to r828656 (#4503) aea106b2 - chore: simplify server screencast code (#4501) 5e6eed0d - fix(frames): do not start network idle timer after detach (#4502) 240d51f1 - docs: improve boundingBox documentation (#4500) 2d16953e - devops: start Chromium mirroring from GHA (#4492) 95aab3b2 - browser(chromium): prepare r828656 (#4499) de43de7a - test: make test not depend on line endings (#4497) 09f9a351 - fix(protocol): rename websocket error event to socketerror (#4495) 1278c254 - feat(webkit): roll to 1391 (#4494) 6bc45d92 - browser(firefox): browser.version() to return full version (#4491) 1169c5ab - browser(webkit): close on pipe disconnect (#4484) b064f930 - feat(webkit): bump to 1390 (#4483) ce423517 - test(route): test that intercepted XHR is actually paused (#4482) a11be3e9 - browser(webkit): roll to 11-18 (#4481) e2d43794 - devops: use proper tags for self-hosted runner (#4480) 33a168e5 - devops: build firefox on self-hosted ubuntu 18.04 runner (#4478) cb1f2a38 - browser(firefox): roll Firefox to Nov 17,2020 (#4477) 8860d6d1 - chore: try building webkit on github selfhosted runner (#4476) 05bb149d - devops: teach self-hosted runner to install dependencies (#4475) 80446aaf - devops: use labels instead of self-hosted runner name (#4474) 497a99de - devops: try building webkit on a self-hosted ubuntu 18.04 runner (#4473) f9a407f1 - devops: remove bigsur buildbot (#4457) a877c24f - fix(route): throw on attempt to fulfill with redirect in WebKit (#4449) cb21d5dc - feat(chromium): roll to 827767 (#4471) 38fadcad - fix(chromium): use frameDetached reason (#4468) c1a5cd51 - fix(docs): remove extra code in timing docs (#4466) ab4a6279 - feat(webkit): roll to r1388 (#4464) 1f5b7527 - feat(chromium): roll to r827102 (#4462) bbe755c7 - feat(firefox): bump to 1210 (#4459) fc038881 - browser(chromium): pick 827102 for roll (#4460) 93b6faee - test(chromium): disable webgl2 on headful (#4450) 79c592ed - browser(webkit): do not create unique page groups for pages (#4456) 5509e98b - browser(webkit): fix mac build after latest roll (#4455) b9ac9df8 - fix: prevent memory leak when collecting logs from injected script poll (#4448) 39fcf1bc - browser(firefox): do not leak reponses (#4453) bd76e9dd - browser(webkit): roll to 11-16 (#4451) 2f73a45e - browser(chromium): roll to 827767 (#4452) e91140e8 - browser(firefox): force a layout before dispatching a tap (#4428) 31bebc7e - fix(close): allow errors when closing all pages of a context (#4324) 3da1f73f - test(chromium): disable large screenshot test (#4446) 0ae455f4 - test(tap): unflake chromium headful tap tests (#4431) dfe3552b - feat(route): support URL overrides in continue (#4438) dd3d4933 - fix(lock): nicer lockfile error (#4396) 732e83f4 - feat(webkit): bump to 1385 (#4430) 914c6eec - feat(firefox): bump to 1206 (#4425) 0167f8c1 - browser(firefox): allow to override request url (#4436) 2e65f788 - browser(firefox): close browser when pipe disconnects (#4437) 9404d2ab - fix(debug): do not generate source urls for anonymous scripts (#3691) d20e56e1 - feat(state): allow getting / setting context state (#4412) a35d2070 - test: fix resource timing for bigsur test (#4419) e69315f7 - fix(websocket): remove "skip frames" logic (#4435) cd18ddb6 - test: add a test for numerical id selector (#4429) 9e1b26f9 - browser(webkit): close on pipe disconnect (#4421) b0d174fd - revert: lifecycle refactoring, it breaks setContent (#4420) 5d47214e - chore: register frameless listeners separately (#4407) bd7507e1 - chore: unify new page handling across vendors (#4411) 2bfee8dc - chore: fix publishing @next from release branch (#4418) 8f728617 - browser(webkit): roll to 11-12 (#4417) 8488c296 - browser(firefox): allow to override content-type along with post data (#4416) eee82a7f - fix(oopif): store child frame id between frameDetached and attachedToTarget (#4410) 52147b30 - devops: fix flakiness upload on windows (#4415) d8837a80 - fix(docs): add tap to actionability (#4413) 5702eca1 - fix(selectors): make selectOptions work for labels (#4402) 138680f9 - fix(launchServer): stream protocol logs into options.logger (#4403)
</details>
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →