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
07 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
5722 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
Python support: Official Playwright for Python is ready for preview!
browser.version()page.bringToFront()download.saveAs()request.postDataBuffer()chromiumSandbox option in browserType.launch(), browserType.launchPersistentContext() and browserType.launchServer()download.saveAs() API and tests across playwright-python and playwright.<details> <summary><b>Issues Closed (31)</b></summary>
#657 - Cannot choose page to be visible in headful mode #2269 - [Feature] Support ES module syntax #2298 - [Bug] Firefox fails with STATUS_DLL_NOT_FOUND on some Win 10 setups #2358 - [BUG] route.fulfill failed with TimeoutError if the response headers contains newline #2386 - [Question] Run playwright from docker container running express server - sandbox issues #2449 - [BUG] Linux Playwright Webkit engine doesn't allow video.play() #2523 - [Question] download file deleted while copying #2547 - [BUG] unable to launch firefox on virtual box windows #2548 - [BUG] unable to launch webkit on virtual box windows #2588 - [BUG] corrupted post data on application/x-protobuffer (probably other non-string postData formats) #2604 - [Feature] Browser.version() #2621 - [BUG] Webkit problem with libwebp-1.1.0-1, error while loading shared libraries: libwebp.so.6 #2622 - [BUG] page.waitForResponse is not working for Firefox #2624 - [Question] When running two or more browser instance for running test cases, all the test cases fails with in Docker #2626 - [BUG] Webkit font rendering (spacing / icon fonts) #2645 - [BUG]Once test execution is completed, error in closing chromium browser #2663 - [BUG] Getting Error: Protocol error (Target.setAutoAttach): Target closed. #2702 - [BUG] Webkit clears on page.type – Chromium/Firefox don't #2730 - [BUG] - TypeError: Cannot read property 'push' of undefined - When restarting tests #2745 - [Feature] Launch doctor #2787 - How to test mobile devices in Firefox? #2864 - WebGL Renderer on WebKit Browser #2901 - [BUG] Chromium not launching on Windows #2906 - [BUG] Coverage types incorrect #2921 - [BUG] selectOption Bug #2940 - Parallel load #2943 - [BUG] Docs for v1.2.1 are broken #2972 - [Question] how to run playwright script in docker #2975 - [Question] Can releases specifically indicate the MacOS version compatibility #2978 - [Question] Playwright and TypeScript #2979 - [BUG] FF - launchPersistentContext
</details> <details> <summary><b>Commits (287)</b></summary>
d01f63b8 - chore: mark v1.3.0
83539d1a - chore: cut v1.3.0-post (#3309)
49560411 - fix(validation): error typo "unknown" (#3304)
9280037d - chore(test): add blank lines (#3303)
b03b4a55 - chore: doc type nits (#3283)
90819fa3 - browser(firefox): always create image buffer in headless mode (#3299)
7e28c26f - browser(firefox): do not complain about SnapshotListener being cleared on Destroy (#3298)
9ec02673 - chore(test): use pathToFileURL (#3292)
3c2fcb7f - feat(webkit): bump to 1322 (#3297)
57490b74 - test: remove describes (6) (#3295)
4cbfa09c - test: remove describes (5) (#3294)
1673e627 - docs: update table of contents for docs sidebar (#3291)
2e65b0af - test: remove describes (4) (#3286)
028dd081 - docs: update documentation for evaluation argument (#3287)
8881a521 - browser(webkit): roll to 8/4 (#3289)
25089760 - devops: fix typo in rustup detection (#3282)
d3a40be4 - browser(firefox): reliably close the pipe (#3280)
573f580f - test: remove describes (3) (#3278)
de55fa64 - fix(webkit): ensure WebKit can play h264 video (#3272)
402d1a6a - browser(firefox): fix win compile 2 (#3277)
bb267356 - test: remove describes (2) (#3276)
e481f378 - browser(firefox): fix win compile (#3275)
5c4f0670 - test: remove describes (#3274)
1148f0b9 - browser(firefox): implement RemoteDebuggingPipe (#3273)
bad4005d - chore(devops): do not copy pw_run.sh to subfolders (#3271)
b52d2597 - feat(webkit): bump to 1321 (#3270)
126b1f79 - feat(rpc): run doclint against rpc client (#3260)
f62e9b5d - browser(webkit): kick-off 1321 build to pick up new WebKitLibraries/win (#3263)
776f0192 - fix(chromium): remove Debugger.paused event listener on coverage stop (#3252)
7e8d03b0 - fix(launcher): extend list of known missing DLLs (#3256)
8709ad7b - chore(tools): update PrintDeps license header (#3254)
cbd33f96 - devops: avoid running publish on external contrib (#3257)
ba9030e6 - docs: update api.md with more references to actionability (#3255)
928a1769 - docs: update docs (#3253)
3edfb2a9 - test: add REPORT_ONLY mode for test collection (#3225)
9b3c90e7 - feat(webkit): bump version to 1320 (#3248)
70b92e17 - docs(README): Point to hosted docs (#3208)
4e5aa3c9 - feat(rpc): support chromiumSandbox option (#3251)
ce0ddd27 - feat(download): create directories for saveAs (#3249)
93056ed8 - chore(rpc): more protocol nits (#3246)
421f6f48 - devops: use playwright-github-action@v1 (#3221)
cbfdca73 - feat(launcher): check dependencies before launch on Windows (#3240)
21eafbcd - test: unflake screenshot test (#3245)
2f95b6e3 - feat(selectors): auto-detect xpath starting with ".." (#3239)
235c5df8 - docs: add readme file for PrintDepsWindows (#3241)
6297f86c - feat(rpc): run generate-channels during lint (#3238)
9103ce00 - devops: fix firefox build (#3237)
e7ddf868 - devops: rename docker image tag for tip-of-tree images (#3222)
08916781 - fix(test): display correct error when golden files mismatch (#3234)
19e8c0fe - chore(deps): bump elliptic from 6.5.2 to 6.5.3 (#3235)
1728a3df - chore: minor protocol fixes (#3226)
88938669 - devops(windows): add tool for printing library dependencies on Windows (#3224)
cefb1b97 - feat(rpc): run fixtures.jest.js with channel (#3227)
4961c2dd - devops(firefox): fixate rust and cbindgen version (#3223)
e0913252 - fix: a pretty error when browser executable is not found (#3220)
ae0c3a6d - docs(devops): update docs for buildbots (#3218)
52eb6c60 - fix(rpc): protocol Route.fulfill (#3200)
3bd97776 - feat(rpc): do not use server types and events in rpc/client (#3219)
7dd9f2c2 - test(iframes): add x-frame-options display test (#3217)
9132d23b - fix(screenshot): wait for stable position before taking element screenshot (#3216)
c6180edb - browser(webkit): print missing dll error to the console (#3214)
10225d19 - test: fix a race in the oopif test (#3211)
487bc589 - devops: re-factor list-dependencies script to output per-browser results (#3194)
84a17f27 - fix(rpc): Frame.dblclick is missing notWaitAfter (#3210)
77b1c4b8 - devops: enable Ubuntu 20.04 tests (#3178)
f111ad74 - fix: add missing libgles2 package to launch doctor (#3209)
21b1be73 - docs(selectors): fixed selector register example (#3169)
6bc02f8f - feat(launchdoctor): detect missing libraries for dlopen (#3202)
a700a7a9 - feat(chromium): roll to 07/29 (#3207)
bdfde5cd - fix(firefox): roll firefox for postdata fix (#3196)
fab5eba6 - fix(oopifs): translate coordinates to viewport (#3201)
6cb1e037 - feat(rpc): disallow deps into rpc client from outside (#3199)
3e023f6c - Revert "browser(firefox): fix color scheme not updating until reload" (#3198)
d27f97ed - devops: include protocol and api.md in NPM package (#3195)
14c68819 - browser(firefox): properly rewrite intercepted request (#3188)
a59220b0 - test: prepare fixtures test to run with rpc (#3190)
da25a5b5 - browser(firefox): do not capture cursor in screencast (#3118)
576e2c52 - fix(webkit): correctly report outerWidth/Height on Mac (#3133)
101dd3b1 - fix(test): make video test pass on Mac (#3121)
97c10002 - api: introduce Browser.version() (#3177)
e406119f - chore: add check_deps script (#3182)
20b7cff9 - fix: update jpeg-js version (#3179)
6fa7547c - fix(launchDoctor): add package mapping for libvpx.so.5 (#3180)
51ce47f3 - docs: use "Node.js" instead of "Node" (#3176)
b2179193 - feat(rpc): replace implicit scopes with explicit dispose (#3173)
9b502af4 - fix(launchDoctor): support existing LD_LIBRARY_PATH (#3165)
f4e584ea - feat(rpc): align class names with api docs (#3164)
d0b758a8 - test: improve autowaiting tests (#3168)
98cc9db8 - chore: simplify doclint (#3162)
fd2e65b7 - api: export all browsers from every package (#3128)
c8c92c50 - fix(utils): fix check-availability script (#3158)
d9890f11 - feat(rpc): make ElectronApplication a scope (#3159)
90ff6671 - browser(webkit): disable high DPI support in Web Process on Windows (#3160)
86b64a23 - feat(launchDoctor): package mappings for Ubuntu 20.04 (#3155)
d4b70786 - feat: validate Ubuntu version if launching firefox (#3156)
549a37b9 - browser(firefox): fix color scheme not updating until reload (#3157)
415e94f4 - feat(rpc): server-side validator (#3150)
1455cae9 - test(emulation): add failing test for setting dark theme in firefox (#3149)
0a57c2b3 - support typescript in jest files (#3132)
6a4195fd - fix(require): allow requiring internals (#3153)
3162c06f - browser(webkit): outerWidth/Height on Windows (#3154)
e7cca867 - fix(postData): allow overriding binary post data (#3120)
bec34db6 - feat(firefox,webkit): roll both Firefox and WebKit (#3145)
deccddba - feat(rpc): update BrowserServer (#3112)
0f0e2acf - fix(type): unify selection behavior when typing (#3141)
678d1645 - devops: normalize blob names on the CDN (#3136)
79ab07bd - devops: install Media Pack on Windows bot (#3137)
bbe7dbe9 - feat(installer): start downloadinb Ubuntu 20.04 builds (#3126)
0b9c6473 - devops: detect completion status (#3135)
ae574b30 - devops: fix webkit build on ubuntu (#3134)
059004b1 - fix(test): don't leave so many zombies on sigint (#3130)
74941340 - browser(webkit): correctly report outerWidth/Height on Mac (#3131)
c1032ae4 - devops: simplify building webkit on linux bots (#3127)
d234dac7 - chore: support esm imports (#3125)
21581a4e - devops: fix buildbot names
cb77d33a - devops: add script for ubuntu 20.04 buildbot (#3123)
d2f24e88 - integrate toBeGolden with jest's snapshot system (#3124)
e5afd927 - chore(tests): resuse tmp file helpers from utils (#3119)
63689e36 - devops: prepare buildbots to the introduction of Ubuntu 20.04 builder (#3116)
2bed3129 - fix(electron): emit close events in the correct order (#3111)
30e21e0b - test: fix api coverage (#3114)
244ce457 - test: add a test for mouse.dblclick (#3115)
c895c972 - browser(webkit): kick-off build for #3100 (#3113)
08b0dc6b - feat(webkit,firefox): bump versions (#3110)
1cfba7f5 - browser(webkit): periodically capture frames on mac regardless of updates
26c57846 - Rebase (#3096)
3d37e458 - browser(firefox): pass actual frame duration to the codec (#3101)
b271624f - browser(webkit): hardcode woff enabled on win (#3103)
68c4f79b - feat(rpc): convert protocol to yaml (#3102)
b1a5a021 - feat(rpc): client-side parameters validation (#3069)
e56e1485 - test(postData): add a failing firefox test (#3098)
65002a0a - feat(rpc): support firefox user prefs (#3093)
80c0711d - feat(firefox): roll firefox to r1137 (#3095)
2a08883e - chore(download): follow up to remove the redundant checks (#3097)
baa09569 - Revert "test: screenshot on failure (#3053)" (#3091)
d8a17fb0 - api(download): Add saveAs helper (#2872)
4db035df - chore: roll_browser to also update docs (#3088)
ea5dfdbe - fix: re-write Chromium startup error with clear instructions (#3070)
1aee8dfc - feat(rpc): align types/guids in the protocol with their pdl definition (#3079)
f50f228a - browser(chromium): roll chromium to r790602 (#3082)
773ee08e - chore(test): restore api coverage checks (#3068)
6e75533c - chore: respect jest params in npm run wtest (#3085)
2b0b0a91 - fix(misc): assorted fixes (#3031)
ced0bc2d - api: make clear the use of null in page.emulateMedia (#3078)
f751ab17 - browser(webkit): write screencast video to .webm instead of .ivf (#3081)
c0d9ccfe - docs: update documentation on Chromium sandbox (#3077)
f4b7ed55 - fix(chromium): reland support selectAll on macos (#3038)
3c151d8f - fix(test): don't output babel's debug info on the bots (#3073)
db4e856a - feat(rpc): use SerializedValue for CDPSession (#3076)
1553f19b - chore: update error messages to match future rpc validator (#3075)
18cb1c01 - feat(rpc): inline selectors.register options in the protocol (#3072)
3dd61629 - feat(rpc): update Response.finished to return string instead of Error (#3071)
47e30f04 - feat: introduce chromiumSandbox launch option (#3067)
af20d270 - fix: auto-add --no-sandbox when running Chromium under root (#3064)
2120a236 - docs(readme): add link to system requirements (#3057)
3dead4c8 - feat(rpc): remove last union types from the protocol (#3059)
de9570ee - browser(webkit): roll to ToT 07/21/2020 (#3066)
babd0cbc - browser(firefox): fix Windows build (#3065)
7f29275a - browser(firefox): use base64 to deliver post data (#3063)
99658c2d - feat(bringToFront): enable on all browsers (#3052)
a03f1dd1 - test: screenshot on failure (#3053)
a5cb9837 - browser(firefox): write video to .webm instead of .ivf (#3062)
2d59a8f9 - feat(rpc): remove some union types (#3058)
5848ed8f - feat(rpc): introduce protocol.pdl (#3054)
726f636b - browser(firefox): implement Page.bringToFront (#3051)
eb14c471 - browser(webkit): do not mask WebGL vendor/renderer info (#3050)
6db89621 - browser(firefox): smooth resize in headless (#3043)
23f506b3 - fix(test): write after end in proxy test (#3039)
d1f937d6 - browser(firefox): stop video recording if page closed (#3040)
37740444 - devops: add script to generate shared object => package mapping (#3022)
cfe3aa3d - test: add a few tests for null values (#3035)
29504c08 - feat(rpc): make SerializedValue format pdl-friendly (#3007)
79d5991a - doc: Improve unroute documentation (#3026)
6199ba28 - devops: remove travis, appveyor, circle for now (#3029)
b5f9985d - devops: make headful a matrix, collect test results (#3027)
13c3f724 - test: restart worker fixtures after test failure (#3021)
562e1e64 - browser(firefox): wait for file write to finish in stopVideoRecording (#3020)
c45b5797 - test: support slow marker (#3018)
7d2078ef - devops: bake browsers into Docker image (#2990)
9a2245d3 - devops: show package names instead of missing libs on Ubuntu 18.04 (#3013)
ef2a6522 - feat: support atomic browser installation - attempt 2 (#3008)
a75835e0 - chore(jest): halve the max workers (#3017)
68ef90d2 - test(click): split into several files (#3016)
f2239b5b - test: respect CR/FF/WK/PATH env (#3015)
91e1a25f - feat(rpc): gracefully close browsers in server process on disconnect (#3005)
9d980119 - test: wire test commands to jest (#3014)
8904f401 - chore(jest): defaultbrowsercontext.jest.js (#3003)
a8216339 - Revert "fix(chromium): select all on macos should work again (#3006)" (#3011)
096ec4c4 - test: move fixtures to jest (#3010)
24f6d19e - test: move remaining tests to jest (#3009)
9790cf22 - feat(webkit): bump to 1308 (#2991)
631fbce7 - fix(chromium): select all on macos should work again (#3006)
9140063c - fix(accessibility): don't filter everything when the page has a title (#2909)
d8bedd85 - chore: explicitly type SerializedArgument, fix rpc dispatchEvent (#2988)
070a2576 - test: move all generic page tests to jest (#3002)
5cf3e4f0 - feat(rpc): switch Env to use an array, split ignoreDefaultArgs (#2984)
df8b2706 - chore(jest): convert browser tests to jest (#3000)
1c0504ae - test: respect fixtures in describe, match image snapshots (#2989)
fe95ee00 - test: group browserType.launchServer tests (#2944)
16e3776a - fix(JSCoverageEntry): added scriptId and isBlockCoverage (#2955)
424f11d1 - test: convert some tests to the jest+fixtures (#2983)
1896e8ed - browser(webkit): send Playwright.pageProxyDestroyed for crashed tabs when deleting context (#2986)
89ccf99b - browser(firefox): screencast for Mac headful (#2985)
056f0e29 - feat(rpc): ensure that error stack traces point to the user code (#2961)
b890569a - feat(rpc): move leftover extraHTTPHeaders to HeadersArray (#2980)
439e048a - feat(rpc): migrate DeviceDescriptors payload to an array (#2981)
4c8ba3ed - chore: remove cli (#2976)
513899a3 - test: add a test for arbitrary options (#2977)
ecc130c6 - test: convert evaluation.spec to jest+fixtures (#2968)
7080767f - devops: move CircleCI to run against dev version of Docker container (#2969)
a802b4a6 - feat(ff,wk): bump revisions (#2967)
198ecee8 - api(exposeBinding): allow handles in the binding result (#2970)
aa4c893b - feat(rpc): implement waitForNavigation on the client (#2949)
824f6491 - devops(docker): fix docker for chromium (#2966)
177873e3 - chore(deps): bump lodash from 4.17.15 to 4.17.19 (#2964)
d750ba38 - fix(docker): add missing dependencies to docker image (#2963)
b7f7ba92 - browser(firefox): screencast support for Windows headful (#2965)
19cd96c4 - test: add the jest-circus experimental runner (#2962)
0b921814 - feat: validate browser dependencies before launching on Linux (#2960)
c51ea0af - feat(rpc): remove PageAttribution from the protocol, attribute on the client side (#2957)
7f617157 - feat(rpc): use headers array in the protocol (#2959)
31893036 - browser(webkit): close crashed pages on exit (#2958)
0aff9bef - browser(firefox): screencast for headless mac (#2956)
4a00e5c4 - test: remove flaky test for binding on error pages (#2952)
2d5c0328 - feat(rpc): return objects for every protocol command (#2950)
46a625dc - feat(firefox): bump to 1127 (#2951)
1b84ec90 - fix(binding): dispatch binding after the page has been initialized (#2938)
89ca2db3 - browser(firefox): kick off new build after last commit (#2948)
de403291 - browser(firefox): add new files for headless screencast (#2947)
bf6f22d8 - browser(firefox): basic screencast for headless (#2931)
d5bd4599 - chore(rpc): remove some paths from the channel (#2934)
cc8fe5a7 - feat(rpc): support electron (#2933)
9fdb3e23 - feat(rpc): support selectors (#2936)
6c75cbe5 - docs: fix link to github workflow in releasing doc
a06ba1c7 - devops: add utility to count compressed docker image size (#2920)
d58a57c4 - devops: fix docker publishing (#2939)
b7d68d1c - devops: automate Docker image publishing (#2937)
65d45c18 - feat(rpc): introduce Waiter for various waitFor implementations (#2935)
b2d820a1 - docs(emulation): separate section for dark mode (#2915)
9fd30e58 - feat(rpc): ensure feature-detection works as before (#2898)
21517576 - feat(rpc): run rpc tests in-process and out-of-process (#2929)
0346c3a1 - chore: update release notes draft gen (#2932)
6d94c920 - feat(rpc): support no-serialization mode, run hook tests (#2925)
66744584 - feat(rpc): log api calls into LoggerSink (#2904)
c63b706a - fix(events): avoid firing events after close/detach (#2919)
fc686141 - feat(rpc): merge DispatcherScope and Dispatcher (#2918)
ebb4c332 - test: mark 2 chromium not important win tests as failed (#2914)
982e5e35 - devops: collect artifacts from browser locations (#2913)
21807bcd - feat(webkit): roll WebKit to r1306 (#2899)
a403d4be - fix(firefox): fix launching firefox without dependencies (#2900)
1cebf875 - chore(docker): skip "recommended" dependencies (#2917)
bce4b1ae - chore(docker): trim some of the gstreamer dependencies (#2897)
631f76df - chore(rpc): remove union types from page and handles (#2912)
b6fd4dc5 - feat(rpc): merge ChannelOwner and ConnectionScope (#2911)
54f9a0dd - test: update headfull chromium expectations after a recent roll (#2908)
d5614652 - devops: use matrix in GHA, add non-linux rpc (#2907)
c89c30e3 - fix(popup): do not report frameless pages (#2910)
c21b6373 - feat(webkit): bump to 1305 (#2893)
a91ec9a1 - feat(rpc): pass more tests (#2896)
70394093 - test: skip devtools test with USES_HOOKS (#2895)
cb8b1bca - browser(webkit): Reduce binary size of WebKit Linux build bundles (GTK and WPE) (#2880)
e90ba262 - fix(context): fire close event for persistent contexts (#2891)
8fe29feb - feat(rpc): support more chromium-specific apis (#2883)
b3ca4afd - chore: misc test fixes (#2857)
6209d14f - chore: misc test fixes (#2888)
c3ac0371 - test: add test to validate user-agent sanity (#2887)
b93e0994 - browser(webkit, firefox): bump versions (#2866)
458aaa50 - feat(chromium): roll Chromium to r786218 (#2879)
71713c95 - fix(webkit): Fix default User-Agent (#2886)
f5911de9 - browser(webkit): release GTK app only if it has been referenced (#2885)
83bba08c - browser(webkit): fix touch events on mac after last roll (#2884)
040c6a6a - chore(jest): run tests with jest (#2754)
6a1bd3ae - docs: add debugging docs page (#2865)
8611ee8d - chore(testrunner): typescript test files (#2751)
e97badcc - docs(CONTRIBUTING.md): Add build step (#2869)
760283ea - testrunner: fix default environment name (#2870)
0c80c227 - feat(rpc): plumb CDPSession (#2862)
2a86ead0 - chore: replace FrameTask with internal events on Frame (#2856)
35cb20d5 - test: unflake recorder tests (#2808)
baaa6549 - browser(firefox): resize window when changing viewport (#2861)
64f57216 - browser(webkit): roll to 07-07-2020 (#2863)
6ed8b5fc - chore(eslint): lint for copyrights on files (#2858)
de7969f0 - docs(api/input): fix typo (#2837)
9640dbf2 - browser(firefox): exclude browser controls from screencast (#2855)
39144dd5 - feat(webkit): bump to 1302 (#2852)
0380400d - chore: refactor waiting for lifecycle events (#2851)
db3439d4 - chore: introduce DocumentInfo (#2765)
</details>
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
Your coding agent can read these notes before it upgrades. Set up the MCP server →