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
page.reload() and page.isVisible() fixes.
page.reload() and page.isVisible() fixes.
<details> <summary><b>Issues Closed (1)</b></summary>
#5111 - [BUG] Frames crashes everything
</details>
<details> <summary><b>Commits (3)</b></summary>
970e230fcba1c62aad9ffb8ddb858e18caa478a0 - chore: mark 1.8.1 a6f62f126d4a3ffaccd2484bcb57ec23144230d6 - fix(isVisible): do not wait for the selector to be resolved a1c6ab23222c224c9d0b0b565eba478d442dbd46 - fix(reload): do not throw when reload is racing with navigation
</details>
Nothing published for this version
Nothing published for this version
…into classes (#4931) 4cd989c6 - docs: introduce deprecation annotation and any type (#4930) 913f8524 - docs: make all links relative (#4926) 0a2fe62c…
:left-of(), :right-of(), :above() and :below()npx playwright --helpselectOption(selector, values[, options]) now waits for the options to be presentpage.isEditable('selector')elementHandle.isChecked()elementHandle.isDisabled()elementHandle.isEditable()elementHandle.isEnabled()elementHandle.isHidden()elementHandle.isVisible()page.isChecked(selector[, options])page.isDisabled(selector[, options])page.isEditable(selector[, options])page.isEnabled(selector[, options])page.isHidden(selector[, options])page.isVisible(selector[, options])'editable' in elementHandle.waitForElementState(state[, options])<details> <summary><b>Issues Closed (41)</b></summary>
#2816 - [Feature] Performance measurement
#2877 - [Feature] A special locator to visually locate an element
#4552 - I would like browser logs when my test fails for my failing test
#4424 - [Docs] Clarify distinction between logger option and console logs
#4511 - [REGRESSION]: Memory leak related to route interception
#4549 - playwright.helper.Error: Navigation failed because page crashed!
#4562 - [BUG] Annotate deprecated API methods and properties as such in TS types
#4584 - [BUG] proxies are flaky on webkit + big sur + m1
#4684 - page.url() not getting current url immediately
#4737 - [BUG] page.waitForEvent('dialog') is not working
#4738 - [Question] Running playwright from inside browser.
#4748 - [Internal] Make server error messages consistent and language-agnostic
#4764 - [BUG] [PW 1.7.0] [WebKit] page.waitForSelector: Protocol error (Runtime.evaluate): The page has been closed.
#4774 - [REGRESSION] Custom selectors no longer able to be last in group
#4775 - [Feature] Playwright does not support chromium on mac11.1
#4782 - [Question] Wait for image loaded.
#4788 - [Question]UnhandledPromiseRejectionWarning EVERYTIME
#4789 - [BUG] Firefox does not isolate proxy credentials between contexts
#4799 - [Docs] Broken links on "Running Playwright in Docker" page
#4800 - [BUG] - FileNotFoundError: [Errno 2] No such file or directory:python3.9/site-packages/playwright/driver/playwright-cli'
#4804 - [BUG] waitForSelector doesn't throw
#4805 - [BUG] waitForSelector timeout doesn't apply
#4806 - [Question] Intermittent waitForResponse timeouts when looping
#4808 - [Question] Access browser binaries from node_modules/playwright directory?
#4811 - [BUG]Screenshot quality parameter setting error
#4813 - [BUG] Missing dependencies in Docker image to play video in Webkit.
#4814 - [Question] How does Playwright handle a big list of pages?
#4816 - [Feature] element.isVisible/isClickable/etc
#4818 - [Question] Docs page color is wierd in night mode chrome
#4820 - [BUG] No usable sandbox!
#4822 - [Question] How to disable bringing page to front during launching.
#4823 - [Question] Where can I find default args used by playwright?
#4824 - [Feature] Perform actionability checks manually
#4833 - [BUG] request.postData() output is distorted on webkit
#4847 - [Question] Cannot launch chrome again after close the previous one
#4849 - [Question] page.click() and CSS extension: visible - documentation confusion
#4853 - [Question]How to get the text of an element?
#4856 - [BUG] Possible click element logic issue in combination with detach
#4862 - [Question] How does Playwright communicate with browsers?
#4863 - [Question]Please give an example of Sync dialog, thank you
#4865 - [BUG] Issue with chained selectors -- text selector doesn't work
</details> <details> <summary><b>Commits (193)</b></summary>
f10f1709 - docs: add file chooser example, remove links to js samples (#5054) 449bcdcb - browser(webkit): roll to 01-19 (#5064) 263f1642 - feat(trace viewer): improve source tab (#5038) c567f948 - chore: mark tot as 1.9.0-next (#5059) d00c5cfd - feat(webkit): bump to 1423 (#5057) 615954b2 - fix(dom): make selectOption wait for options (#5036) 19acf998 - docs: minor updates to selectors.md (#5055) 0586c255 - feat(text selector): normalize whitespace for quoted match (#5049) 9e3bd786 - docs: update selectors doc to be more like a guide (#5048) 9caa8e80 - test: add test for multiple arguments in :has() (#5047) 01fb3a60 - docs: extract handles, screenshots, videos docs (#5045) 0a7b917e - feat(chromium): bump to 844399 (#5044) d05c0917 - chore: roll chromium to 844399 (#5043) 17e953c2 - chore: make generate_types not depend on the source (#5040) 1fc02e88 - docs: add dialogs and downloads docs (#5042) 2db02c9a - docs(python): update installation docs (#5039) fdfea2b7 - browser(webkit): add another missing include to fix mac after roll to 01-15 (#5037) afaec552 - feat(trace): show dialogs, navigations and misc events (#5025) e67d5637 - docs: don't use lang suffix in the intro url (#5035) 41e394bc - docs: allow overriding return types (#5031) 940cf35d - browser(webkit): add missing include on mac after roll to 01-15 (#5033) 0ab6a532 - browser(webkit): roll to 01-15 (#5032) 6e94c110 - docs: prepare docs for tabbed snippets (#5026) 56ba0b3c - docs: brush up some python docs (#5027) b45905ae - feat(trace viewer): small improvements (#5007) 7701176b - docs: allow lang-specific sh snippets (#5024) de5d671d - chore: restore lockfile v1 (#5023) 19b58d47 - chore: bump chromium to r843427 (#5022) e85f2788 - docs: more python docs and snippets (#5021) 61b0dbb3 - devops: start downloading firefox arm builds on Apple Silicon. (#5019) 5dcb7bb2 - docs: declare expect_navigation as returning Response (#5020) ff20b9d1 - devops: support frequent minor releases of MacOS BigSur. (#5016) 1648d235 - docs: add python snippets for api classes (follow up) (#5018) 3ed9f2d6 - chore: disable v1 flakiness dashboard (#5015) 38dac2f3 - chore: bump electron version to 11 (#4968) 8354a91d - docs: add python snippets for api classes (#5011) 5408e26e - docs: add python snippets for class Page (#5010) 0a999bf0 - fix(driver): remove path trickery from install command (#5008) e3ebba55 - chore: cleanup code that is not used by cli anymore (#5005) 7ff86a84 - chore: add publish-driver-release workflow (#5006) 5c3f4836 - fix(cli): do not extend injected script on same-document navigations (#5002) a35617db - chore: bundle proper license file for ffmpeg (#5004) 9a9ac60d - fix: fix the cli tests, generate snake python (#5003) decf373c - fix(electron): return a ChromiumBrowserContext for electron (#4913) df53cb2f - docs: fix inline code quoting (#4992) fcbfbe6f - devops: fix azure function bugs (#4998) 8316dee4 - devops(flakiness): persist all test reports, aggregated per commit sha (#4991) 29c34325 - fix(cookies): make filtering by url work with subdomains (#4989) 0bf7477c - test(network): add failing test for Set-Cookie in fulfill (#4988) cac119f3 - docs: python api review (#4986) 3d258631 - feat(webkit): bump to 1420 (#4980) d62b661c - docs: rename proximity selectors to position selectors (#4975) cb6e4a66 - chore: update snippets in python docs (#4976) 7665a6ec - devops: support apple silicon builds of Firefox (#4979) 72519196 - fix(connect): provide an error message when ws endpoint is incorrect (#4978) 068ad0f0 - feat(firefox): roll Firefox to r1225 (#4908) 728846b3 - fix(launcher): add vcruntime140_1.dll to the list of known deps (#4973) 36650b1e - browser(webkit): fix compile on mac (#4977) bf64fedd - fix(trace viewer): updating default traceStorageDir value (#4962) 56f01204 - browser(webkit): fix mac compilation after roll to 01-11 (#4972) 62c52e86 - browser(webkit): roll to 01-11 (#4971) 5854cadd - browser(webkit): fix typo in macro name (#4970) 7a8214cd - chore: prepare non-api docs for non-js variants (#4969) 4dbbb475 - docs: document Python's expect_event methods (#4963) e67d8974 - chore: update docs to cover python specifics (#4960) e990a805 - fix: restore network request title in trace viewer. (#4957) 5a2cfdbd - api: add isChecked method (#4953) 3b617b37 - docs: validate member links (#4955) b7e0b1b3 - docs: annotate evaluate(pageFunction) js-specific (#4954) 31d980fc - chore(webpack): minify injected sources (#4946) 135e0344 - feat(cli): small improvements (#4952) 114d586f - chore: add python aliases (#4949) f0a87291 - chore: remove unused selector engines (#4950) 3f904056 - api: add isVisible, isHidden, isEnabled, isDisabled and isEditable (#4915) 498f9a52 - docs: update authentication guide to use storageState() api (#4948) d08cbc33 - docs: brush up selector docs (#4939) 97de9209 - docs: move links into playwright.dev (#4947) 77bfcd2c - chore: add some Python language snippets (#4933) 07cb5f71 - docs: Added Crystal port to showcase (#4945) 2072c614 - docs: add Java to the list of language ports (#4940) 15c0a295 - docs: split nodejs and python links (#4942) 2e05feac - feat(cli): bring in trace viewer (#4920) 54c06a1b - chore: mark methods as js-only, add python-specific methods (#4938) e56832b6 - chore: language-specific members api (#4936) 8d649949 - docs: move Go port to showcase (#4934) eb9ea205 - feat(selectors): proximity selectors (#4923) ffa169ba - chore: use chokidar for build (#4932) bdf12e32 - docs: split api-body into classes (#4931) 4cd989c6 - docs: introduce deprecation annotation and any type (#4930) 913f8524 - docs: make all links relative (#4926) 0a2fe62c - fix(extensions): do not enable screencast for background pages (#4919) 8fd34c6b - feat(webkit): bump to 1415 (#4914) 4ff7e1a4 - chore: cleanup our build system (#4903) 2311c282 - docs: pref docs to be language-specific (#4916) cc1a79ec - browser(webkit): drag and drop on windows (#4889) f672033e - chore: bundle small build of highlight.js (#4907) 6b3dcb01 - chore: fix randomly crashing build-playwright-driver.sh (#4909) 9bbabaaa - test: update screencast test to actually require red color (#4745) b6cd385a - docs: mark some paths as such (#4896) 2908568f - browser(webkit): install new dependency required for openxr on linux (#4906) 6b94f5f1 - browser(firefox): roll Firefox to beta @ Jan 5, 2021 (#4904) a9c776f5 - chore: watch to regenerate api.json (#4901) d47fb6a7 - feat(cli): build driver and upload to cdn (#4841) b00559bd - docs: add save/load storage to cli docs (#4899) 35ecf69d - chore: fix lint (#4898) 5df1c6e5 - browser(webkit): roll to 01-05 to pick up upstream Win fix (#4894) 0f8d7ec0 - docs: improve waitForElementState documentation (#4883) d8187bb5 - feat(webkit): bump to 1412 (#4886) 4996eacd - docs: split numbers into integers and floats (#4887) 849a5b37 - browser(webkit): roll to 01-04 (#4882) 4a891582 - fix(type-generator): make the generated by message consistent on windows (#4888) 80f8a0fd - doc: further align docs w/ playwright.dev (3) (#4884) 5215add6 - chore: remove selectorsV2Enabled switch (#4880) c4df5225 - fix(handles): always create proper handle type (#4879) 31ffeb32 - doc: further align docs w/ playwright.dev (2) (#4871) 3ff81fe1 - browser(webkit): do run win build again if first attempt failed (#4881) 706c1e44 - chore: use last commit timestamp for @next builds (#4876) b0b1561c - browser(webkit): kick off next build (#4878) 736ef4e8 - browser(webkit): call build.sh twice on Windows (#4875) ae935a43 - doc: further align docs w/ playwright.dev (#4866) e0e836cb - doc: split classes into files (#4864) ba291372 - docs: generate all docs off docs-src (#4858) 75198f04 - browser(chromium): bump to r839741 (#4857) a5bd415e - doc: generate class toc as a part of the api generation (#4852) ded2bc23 - browser(webkit): postpone creation of the first page (#4769) 9817d109 - doc: generator code health (3) (#4850) 6697dadc - chore(eslint): add rule no-unused-expressions (#4848) d08f8487 - chore: remove useless statement that was a typo (#4846) 722db85e - doc: generator code health (2) (#4843) 8fbb984f - test: disable most codegen on headful firefox (#4839) 7f8717f1 - feat(cli): add docs (#4837) 70c14e6b - doc: generator code health (#4840) a1232b69 - chore: simplify and remove some scripts (#4838) 068d8612 - feat(cli): make run-driver work (#4836) 293a7bdd - feat(cli): bring in codegen and tests (#4815) 4c11f5d8 - test: remove hacky requires, use imports instead (#4835) 94077e0e - chore: remove JS types checker, rely on typescript (#4831) a446792c - docs: generate api.md off documentation model (#4832) fee7dd7c - chore: nit type validator fix (#4830) 905f28c3 - feat(types): simplify android and electron types (#4829) 34c1b338 - feat(types): make our client classes implement public types (#4817) dc25173a - chore(docs): fix crlf (#4828) 2cb57701 - docs: move playwright module into api-body.md (#4827) 15cdfd1c - chore: generate types, api.json off md rather than html (#4825) 9dd982c5 - chore: commit generated types to the repository (#4826) 277d255f - chore: brush up md processing (#4819) 225e65e0 - feat(cli): share console api between cli and debug mode (#4807) f709e230 - feat(cli): bring selector generator into playwright (#4795) 8d4c46ac - fix: throw if quality=0 is passed for png screenshot (#4812) e7ee4262 - yury comments (#4639) eb50baff - browser(firefox): bump to 1224 (#4809) d40afa2f - feat(cli): first few cli commands (#4773) cc32217e - chore: fix check-deps (#4801) a7f4c69a - docs: fix browser version generation script (#4797) ff2a1f1b - fix(webkit): properly detect arm64 on apple silicon (#4783) 73edf13a - browser(webkit): roll to 12-21 (#4794) afaf13a0 - docs: add missing GEN:webkit-version (#4770) b3e78385 - browser(firefox): clear AuthCache when setting context proxy (#4793) 3eef2548 - test: failing test for firefox per-context proxy credentials (#4790) 779c5fff - chore(installer): remove stale backlinks silently (#4786) 7bbda437 - chore: improve error reporting when browse download fails (#4787) 94ee48f8 - fix: allow proxy credentials with empty password (#4779) ee417791 - chore: roll FFMPEG to r1004 (#4760) fc30c29a - test: add a test for custom engine that does not respect root (#4777) 2e220df7 - docs: explicitly annotate methods and parameters (#4771) c81ec9cc - test: fixed failing test on video bot (#4747) d498b450 - docs: remove mentions of nodejs, promises and resolves (#4768) 761bd788 - browser(firefox): fix build on MacOS (#4758) b56dd7de - devops: kick ffmpeg build (#4757) 774eb539 - fix(adb): force page scale factor update on connection (#4755) a721ba5a - devops: give unique names to test shards (#4756) 3219057a - fix(webkit): support utf-8 characters in postData, bump to 1407 (#4744) 5a1c9f1f - fix(selector): bring back v1 query logic (#4754) 9a0023cc - fix(selectors): text engine after capture matches scope (#4749) 35533b15 - fix(scroll): scroll from under the sticky header (#4641) e4658ea9 - browser(webkit): base64 encode request.postData (#4743) 7385b31f - fix(driver): stop sending protocol messages after disconnect (#4688) 94f5002a - browser(webkit): install patchelf (required by generate-bundle) (#4741) b014fa18 - browser(webkit): roll to 12-16 (#4739) 23a6e4df - chore: restructure and optimise test files (#4736) 50b0b479 - browser(webkit): mac build fix after roll to 12-15 (#4733) 2c409b04 - fix(android): leaking adb socket connections (#4730) 0af34a4f - devops: firefox build now requires newer MacOS SDK to build against (#4732) 97be66b1 - fix(adb): enable newPage in mobile browser (#4728) eecb7983 - browser(webkit): roll to 12-15 (#4727) 69476a86 - chore: add support for macOS Big Sur 11.1 (#4724) e02c5448 - chore(adb): make driver smaller (#4713) b09e0d01 - fix(launchdoctor): make launch doctor to warn on Win7 (#4718) 355a58e6 - feat(storage): accept path in save/load storage apis (#4714) 5f6ccee7 - browser(firefox): roll Firefox to beta Dec 14, 2020 (#4716) 0b8f34e7 - docs: rename aggregate parameter objects to params (#4715) ab63063c - fix(tracing): store relative video path in the trace (#4710) e91eee84 - chore: cut v1.7.0 (#4705)
</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
Your coding agent can read these notes before it upgrades. Set up the MCP server →