NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1235 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 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
5708 releases · first in 2020
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
…ab4629af - devops: add trigger workflow to deprecated webkit builds (#5836) 8dc74057 - devops: refactor check_cdn.sh script (#5835) e64f6668 - devops:…
This version of Playwright was also tested against the following stable channels:
browserType.launch() now accepts the new 'channel' option. Read more in our documentation.<details> <summary><b>Issues Closed (61)</b></summary>
#742 - [Feature] - Delete a certain cookie instead of clear all cookies
#1063 - [Feature] Improve handling of invalid browser arguments
#1797 - [Feature] Support NodeList and Node[] as return from Page.evaluateHandle(pageFunction[, arg])?
#2089 - [BUG] Text selector doesn't match by combined innerText
#2220 - [Feature] Download progression
#2238 - [Feature] Hide file pickers if they will be emulated
#2308 - [Question] How to handle discarded tabs?
#2747 - [Feature] Highlight element in the browser
#2767 - [Question] Is it possible to define host resolution rules per browser instance?
#2902 - [Feature] Method to wait for event listeners to be attached
#3032 - [Feature] mouse.getPosition()
#3184 - [Feature] Support raw headers
#3265 - [Feature] page.inputValue() that reads from the value property, not the attribute
#3540 - [Feature] Lazy loaded frames API
#3648 - [Feature] Provide command args with Logger logs
#3828 - [Feature] Ability to set device scale factor on an existing page
#3989 - [Feature] Adding support to custom keyboard layout
#4263 - [Question] Video Stream
#4377 - [Feature] Support evaluate() as a content script
#4390 - [Feature] a hook mechanism to augment cross-cutting logic
#4441 - [Feature] extension message passing in non-persistent context
#4507 - [BUG] DeviceDescriptor not exposed
#4543 - [Question] Plans to implement puppetaria (aria/ selector)
#4902 - [BUG] Can't catch firefox error dialog
#5228 - [BUG] launchPersistentContext hanging on "about:blank" [REOPENED]
#5633 - [Question] How to record video / take screenshot with multiple windows
#5634 - [REGRESSION]: Text selector changed behavior
#5636 - [BUG] Playwright install fails on windows 10
#5642 - [Question] How to start webkit with persistent context?
#5648 - [BUG] Error: Duplicate target when trying to connectOverCDP next time
#5649 - [Question] How to disable Debug mode, once I set PWDEBUG in env. variable now it's always running in debug mode
#5684 - [BUG] Firefox is failing while testing.
#5716 - [Feature] make scroll into view optional for page.click()
#5733 - Browser Closed : UnhandledPromiseRejectionWarning (node:1744)
#5735 - [Question] Is there a way to access the payload for a PUT request method?
#5747 - [Question] Mocking the same endpoint multiple times in one test
#5748 - [Feature] Docs update for text= vs :has-text vs :text
#5749 - [BUG] UnhandledPromiseRejectionWarning: browserType.launch: Timeout 30000ms exceeded.
#5752 - CURLOPT_INTERFACE alternative in Playwright browser?
#5767 - [BUG] Error: browserType.launch: Failed to launch chromium because executable doesn't exist at /home/jenkins/.cache/ms-playwright/chromium-844399/chrome-linux/chrome
#5778 - [BUG] Chromium: screenshot is created without scrollbars
#5780 - [Question] Support for CentOS
#5781 - waitForResponse()
#5786 - [Question] How to download Playwright Chromium browsers in local?
#5792 - Cant trace "METHOD: OPTIONS" XHR request
#5793 - [Question] The browser rendering two versions of the same page source code
#5794 - [BUG][Chromium] AudioRtpReceiver::OnSetVolume: No audio channel exists - error with testing microphone in the Twillio video calls
#5795 - [Question]WebKit version
#5797 - [Feature] Option to not remove unused browsers
#5799 - [internal, wip] dependency installation considerations
#5801 - [BUG]browserType.launch: Failed to launch firefox because executable doesn't exist at /root/.cache/ms-playwright/firefox-1234/firefox/firefox
#5802 - [BUG] codegen window fails to appear on window as non admin
#5804 - [Question] Is there a way to emulate cmd+f functionality?
#5809 - [Question]how to use playwright cookies to bypass login
#5818 - [Question] is it not possible to use no proxy with 'per-context' lauched instance?
#5821 - [Feature] Define Page.click options typing
#5822 - Does playwright support waiting for the element invisible?
#5841 - [BUG] Inspector collects signals before action
#5842 - [BUG] When using with Chrome 89, Browser.close won't quit browser in headful mode
#5851 - [BUG] webkit evaluate promise never returns / fails
#5857 - [Question] Docker debian slim image
</details> <details> <summary><b>Commits (187)</b></summary>
a61487f4 - chore: mark v1.10.0
543582b4 - chore: expose channel name literals for types (#5922)
f70eaf4f - docs(android): android doc nits (#5924)
8f1d03f8 - docs(options): clarify recordHarPath and recordVideoDir behavior (#5923)
ca35da0a - test(android): run selected page tests on android (3) (#5910)
3a27bdd3 - chore(dotnet): improve name generation for objects (#5860)
9f1b2f68 - test(resize): add a screenshot resize test (#5907)
ec6453d1 - fix: installer compilation (#5908)
172de408 - browser(chromium): build current dev chromium (#5911)
b74af226 - browser(webkit): fix mac compilation after latest roll (#5909)
14ccc80c - fix(android): bundle android driver in all settings (#5883)
cac5aeb6 - docs(browser): wording nits
1bcbb152 - set system default python3 to python3.8 (#5892)
2064d27d - fix(installer): retain browsers installed via Playwrigth CLI (#5904)
6dd4d756 - browser(webkit): roll to 03-22-21 (#5903)
67c29e81 - chore: add missing await to floating promises (#5813)
be9fa743 - docs(intro): remove stray wait from sync snippet
23725192 - docs: add event listener guide (#5881)
fbb46264 - chore(dotnet): support for optional properties in generated objects (#5889)
1f1c8b74 - test(android): run selected page tests on android (2) (#5882)
ad5c028f - test(android): run selected page tests on android (#5879)
cbebf64f - docs: fix circleci invalid yaml (#5880)
16bf462e - test: organize tests to not depend on context (#5878)
5c753b76 - docs: add the browsers section (#5876)
c68bd310 - test: make init script test strict again (#5877)
c4410d3f - Revert "chore(docs): add support for language specific notes (#5810)"
516f13e7 - Revert "chore(docs): reference the available constants for csharp (#5785)"
c435ff35 - feat(firefox): roll Firefox to r1238 (#5873)
9a50304d - fix: work-around electron's broken event loop (#5867)
dfb1c99a - chore(docs): reference the available constants for csharp (#5785)
d53cea70 - fix(pageOrError): throw in launchPersistentContext if context page has errors (#5868)
bb21faf4 - fix: disable firefox's webrender on Darwin (#5870)
9bd35d82 - test: disable shortcuts test on Firefox darwin (#5869)
de16d177 - docs(dotnet): move options arguments last (#5856)
2367039a - chore(stable): throw user-friendly message when ffmpeg is missing (#5865)
141583c7 - infra(chrome_stable): add more bots (#5863)
84efdfcb - chore(autowait): auto-wait for top level navigations only (#5861)
5ae731a3 - chore(evaluate): respect signals when evaluating on handle (#5847)
7011e573 - chore(evaluate): explicitly annotate methods that wait for signals (#5859)
c5500081 - docs(dotnet): adds option parameters for csharp on element handle (#5823)
ae460f01 - devops: start downloading webkit fork on Mac 10.14 (#5837)
693e5699 - chore(docs): add support for language specific notes (#5810)
1fab8457 - browser(firefox): roll Firefox to beta @ Mar 16, 2021 (#5852)
e8a33c40 - feat(firefox): roll Firefox to r1237 (#5849)
bf36b487 - fix(rimraf): allow 10 retires when removing the profile folder (#5826)
d1a3a5d5 - chore: cleanup test logging on CI (#5848)
8df4dcb0 - feat(webkit): bump to 1446 (#5844)
d81ebff4 - fix(inspector): do not collect action signals while on pause (#5843)
36a61c36 - docs(dotnet): ability to generate generics and null on path args (#5824)
ab4629af - devops: add trigger workflow to deprecated webkit builds (#5836)
8dc74057 - devops: refactor check_cdn.sh script (#5835)
e64f6668 - devops: fork webkit into a separate browser (#5834)
5cf13612 - chore: pretty print storage state (#5830)
c2db8da4 - fix(inspector): await inspector init to avoid races (#5829)
8565e72e - chore: consolidate browser cheatsheets (#5832)
5835c7e5 - browser(webkit): fix linux builds, install liblcms2-dev (#5831)
095ad633 - chore: update error message when using userDataDir arg (#5814)
ea32ad2b - infra(channel): add edge stable bot (#5825)
95affe93 - chore: do not delete unused browsers when PLAYWRIGHT_SKIP_BROWSER_GC is specified (#5827)
226bee01 - browser(webkit): roll to 03-15-21 (#5828)
defd1a33 - fix(chromium): fix crash if connecting to a browser with a serviceworker (#5803)
1dd6bd33 - infra(channel): wire release channel to all tests (#5820)
a96d6a7d - feat: allow to pick stable channel (#5817)
0d32b053 - chore(deps): bump react-dev-utils from 11.0.3 to 11.0.4 (#5811)
c4578f19 - chore: organize per-browser dependencies (#5787)
a185da9d - chore: allow skipping host requirements validation (#5806)
7fcb8926 - fix(firefox): ensure a exception catch when async send call to a dead object; (#5805)
ad69b2af - chore: unify recorder & tracer uis (#5791)
43de2595 - fix(xmldocs): over-greedy regex for md links and clean-up (#5798)
6a8c8d9c - docs: fix Dialog class reference (#5788)
720dea40 - docs(dotnet): adding missing methods from dotnet port (#5763)
b01f6ec9 - test: add a test for css selector being relative to the root handle (#5789)
7706e5a2 - docs(python): removed wrong quotes for enum (#5784)
ddfdf8a7 - fix: install chromium along with ffmpeg (#5774)
fea66694 - feat(trace): highlight action target (#5776)
42e9a470 - chore(xmldocs): resolve MD links to XmlDocs tags (#5782)
9560da75 - chore(deps): bump elliptic from 6.5.3 to 6.5.4 (#5783)
7fa59f6d - infra(stable): add chrome stable bot (#5768)
13977301 - test: click links in shadow dom (#5773)
c020278f - docs(readme): use aka.ms Playwright Slack invite link (#5741)
0bc39f27 - chore(generator): change dotnet default value from null to default (#5764)
1d6feb2a - fix(inspect): highlight on explore input change (#5726)
d3110582 - fix(BrowserContext): race between continue and close (#5729)
aae8cc83 - docs: improve Download methods documentation (#5760)
1a94ea5f - chore: refactor trace viewer to reuse snapshot storage (#5756)
659d3c3b - docs: use custom link element in waitForNavigation example (#5755)
bc3a0fb9 - browser(webkit): roll to 03-08-21 (#5754)
47104746 - docs(dotnet): marking methods async (#5751)
0ca56a8b - docs(dotnet): mark waitForClose as async (#5730)
53a62a3a - test: add post data test with PUT request (#5745)
9e205662 - fix(postData): do not require content type when retrieving post data (#5736)
b5aeba90 - docs: update java version to alpha in the intro (#5744)
b3561e6c - feat(chromium): bump to 857950 (#5742)
ea9485ec - docs: document PlaywrightException in java (#5743)
8ed49622 - test(downloads): make logging only show up on CI (#5732)
976f35aa - fix: update codegen to produce set* instead of with* (#5738)
70beef83 - docs: rename with* to set* for java (#5737)
0306fcb1 - docs: add java examples for CLI (#5727)
e56f56c1 - browser(firefox): pass null for the data transfer (#5723)
8ffcbb38 - docs: add a pom.xml example for java intro (#5720)
26b7db96 - feat(cli): launch-server command (#5713)
5c46a61d - docs(dotnet): csharp example for worker (#5718)
2e4f6454 - docs(dotnet): csharp mouse example (#5717)
2af8b8ac - chore: inspector snapshot nits (#5676)
a9238ce2 - feat(debug): introduce npx playwright debug (#5679)
ff91858b - docs: instpector launch params for java (#5711)
217a593e - docs: remove current accessbility api from java (#5708)
d3eff503 - feat(java): implement codegen (#5692)
5903e771 - browser(chromium): roll to 857950 (#5709)
f0242910 - docs: add Page.onceDialog for java (#5706)
d87522f2 - fix(text selector): revert quoted match to match by text nodes only (#5690)
986286a3 - chore(dotnet): add examples to accessibility docs (#5702)
ad27f3bf - docs(xml): code escaping for XMLDocs generation (#5703)
23b035b0 - chore(dotnet): add documentation on result classes and include property name (#5694)
5ad8da96 - devops(docker): fix typo in docker build (#5705)
2a6bb504 - docs(python): fix outdated waitForResponse example (#5685)
28d9f244 - browser(firefox): roll Firefox to Beta @ Feb 28, 2021 (#5659)
e4d33f56 - fix(click): do not retarget from label to control when clicking (#5683)
30e88c36 - docs: enable BowserType.connect in java (#5686)
ff243f1a - fix(addInitScript): make it work on new pages without navigations (#5675)
2cdb6b49 - fix(inspector): inlcude sdkLang in the error (#5682)
2973ecea - docs: string constant quoting (#5681)
1eb0f429 - chore(dotnet): unique name for generated files, change root namespace (#5678)
1a0ccc13 - feat(webkit): bump to 1443 (#5665)
19bd32f6 - docs: add video and proxy docs (#5668)
3b9d4f2b - docs: Add ffmpeg to roll_browser.js usage output (#5643)
850e3c5a - test: add debugging output for downloads tests (#5673)
f925a033 - fix(docs): broken link to method (#5669)
f637b030 - devops(docker): fix registry to be accessible by Azure Pipelines user (#5672)
f2a3d21a - browser(chromium): roll to 858453 (#5670)
9042ca21 - docs: rename Page.console to consoleMessage in java (#5640)
cd2e976c - docs: unfork installation docs (#5661)
cad76349 - docs: spread parameters of page.setViewportSize in java (#5664)
c390f395 - fix: include parsed .md spec into api.json (#5662)
b253ee80 - chore(snapshot): brush up, start adding tests (#5646)
ee69de77 - docs: docs typos (#5658)
eb980207 - test: add a test for 2 cdp sessions against the browser (#5655)
01abeac4 - browser(webkit): roll to 03/2 (#5656)
86c7d779 - chore(dotnet): handle setters and ordering bug (#5654)
6c9e8066 - docs: add java snippets to the examples in guides (#5638)
aeb2b2f6 - feat(inspector): wire snapshots to inspector (#5628)
c652794b - chore: bump webkit version (#5637)
28f3fe8e - chore(dotnet): generate dotnet API from Markdown (#5089)
4b541749 - feat(webkit): bump to 1442 (#5622)
96e099ac - docs: use "argument: <type>" notation for events (#5626)
cb0a890a - docs: java snippets for api classes (#5629)
612bb022 - docs(intro): fixed wrong Python option (#5625)
992f8082 - chore(snapshot): implement in-memory snapshot (#5624)
b2859367 - docs: more clarity in the attribute selectors (#5621)
f7e5db4d - chore: remove ProgressController.abort (#5620)
2ff6d54f - chore: extract snapshotter from trace viewer (#5618)
af89ab7a - chore: make trace server generic (#5616)
1cd398e7 - chore: bump storybook dependency (#5619)
f72b098a - chore: encapsulate parsed snapshot id in the trace viewer (#5607)
ca8998b1 - feat(log): prepend browser pid to browser logs (#5569)
5ae26611 - chore: simplify overrides management in trace viewer (#5606)
0102e080 - fix(text selector): make quoted selector match by text nodes (#5603)
8906ba33 - chore: spell overridden (#5605)
c91159f3 - chore: make stack filtering playwright dev-friendly (#5604)
f85deeba - docs: no [File] links (#5601)
6bf3fe84 - chore: make trace model a class (#5600)
f71bf9a4 - chore: move trace viewer into server (#5597)
b07dba80 - test: improve test names (#5511)
3dd06815 - chore: udpate scripts that generates release draft (#5556)
5fb77935 - chore: move logic from sw to server (#5582)
070cfdcd - fix(inspector): skip stack trace playwright/src lines only under tests (#5594)
aa94dfbc - chore: remove invalid link from release notes (#5577)
bd31817c - docs(readme): fixed broken docs links (#5587)
fefe37e9 - fix(inspector): stacktrace with browser specific NPM package (#5589)
48c237b3 - chore: move trace to server (#5565)
180446d2 - fix(types): restore electron types (#5574)
841264c9 - fix(test): disable failing drag and drop test on mac and windows (#5575)
f3a09210 - test: move installation tests out of playwright tree (#5573)
1dc7fb1f - test: add more tests for Set-Cookie in fulfill (#5570)
5cb914b2 - fix(types): do not use import('electron') (#5572)
8f79b8c1 - docs: update release-notes.md (#5571)
e3cd52d0 - test(drag): enable drag tests everywhere but chromium (#5553)
ec9a5349 - docs: describe playwright.create in java (#5566)
dc3fd3f6 - test(drag): test for dropEffect (#5559)
8ef6cb73 - feat(codegen): use the name attribute for more elements (#5376)
11d3eb6b - browser(webkit): fix mac compilation take 2 (#5567)
e677e7ba - browser(firefox): pass drag action test (#5560)
df4b9846 - browser(webkit): fix mac compilation (#5564)
4f9b7d5a - docs: add intro docs for java (#5563)
0ad2aceb - docs: filter out devices section in java (#5562)
1ee46a8c - docs: fix docusaurus build (#5554)
0eb96d77 - chore: cut v1.9.0 (#5551)
</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
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
Text selector and click() fixes.
Text selector and click() fixes.
<details> <summary><b>Issues Closed (2)</b></summary>
#5634 - [REGRESSION]: Test selector changed behavior #5674 - [REGRESSION]: Label is not visible anymore
</details> <details> <summary><b>Commits (18)</b></summary>
e42fe217 - cherry-pick(release-1.9): fix(BrowserContext): race between continue and close (#5771) 11968ce3 - chore: mark v1.9.2 (#5770) 1dae530f - cherry-pick(release-1.9): fix(click): do not retarget from label to control when clicking (#5769) ccc89e35 - cherry-pick(release-1.9): fix(text selector): revert quoted match to match by text nodes only (#5766) 3fcc57c5 - fix: update codegen to produce set* instead of with* (#5738) (#5740) 07438f61 - cherry-pick(release-1.9): rename with* to set* for java (#5739) 097f7c3f - feat(java): implement codegen (#5692) ab3b8a1c - cherry-pick(release-1.9): launch-server command (#5713) (#5719) 4e317b3f - docs: remove current accessbility api from java (#5708) (#5712) 563254a9 - docs: add Page.onceDialog for java (#5706) (#5710) c6a29011 - cherry-pick(release-1.9): fix registry to be accessible by Azure Pipe… (#5704) f41d000c - docs: enable BowserType.connect in java (#5686) (#5691) 75b83cbe - docs: rename Page.console to consoleMessage in java (#5640) (#5671) 1d7d08c3 - docs: spread parameters of page.setViewportSize in java (#5664) (#5667) 5d275f10 - docs: describe playwright.create in java (#5566) (#5666) 6b4d528f - fix: include parsed .md spec into api.json (#5662) (#5663) 9a4d6904 - cherry-pick(release-1.9): add java snippets to the examples in guides (#5638) (#5660) 948e658c - docs: java snippets for api classes (#5629) (#5657)
</details>
Nothing published for this version
Nothing published for this version
Electron types and text selector fixes.
Electron types and text selector fixes.
<details> <summary><b>Issues Closed (3)</b></summary>
#5585 - [REGRESSION][1.9.0]: Cannot find module 'electron' or its corresponding type declarations
#5583 - [REGRESSION]: Selector text="" works differ for element with nested elements since 1.9
#5588 - [BUG][Inspector] Stack won't extracted correctly if browser specific NPM packages are used
</details>
<details> <summary><b>Commits (6)</b></summary>
92bbdbed cherry-pick(release-1.9): make quoted selector match by text nodes (#5603) (#5608) 1196ac66 cherry-pick(release-1.9): skip stack trace playwright/src lines only under tests (#5594) (#5599) 9e69146a cherry-pick(release-1.9): stacktrace with browser specific NPM package (#5589) (#5598) 9d8d5c76 chore: mark v1.9.1 c264eb3d cherry-pick(release-1.9): move installation tests out of playwright tree (#5573) (#5578) f9b5f75f cherry-pick(release-1.9): do not use import('electron') (#5572) (#5576) </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
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 →