What microsoft/playwright shipped
Written by FoxPlug from the repository's own releases; not affiliated with Microsoft. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/microsoft/playwright; Microsoft did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- Released v1.64.0, adding page.webmcp and frame.webmcp access to tools a page registers through the WebMCP browser API. Release
- Test.skip, test.fixme, test.fail and test.slow now accept a description string that is recorded as the annotation description. Pull request #43198
- Reporters gained an onlyFailures option and the run gained a --reporter-only-failures flag so passing tests no longer add output. Pull request #42766
- Elements with the inert attribute, their descendants, and content outside the topmost modal dialog are now treated as hidden for aria, getByRole, aria snapshots and accessible names. Pull request #43211
- Trace context options no longer store httpCredentials, extraHTTPHeaders, proxy credentials or storageState cookies, keeping only baseURL, viewport, deviceScaleFactor, isMobile and userAgent. Pull request #43220
- Proxy credentials now work in BiDi Chromium by answering the proxy challenge instead of adding a rejected Proxy-Authorization header. Pull request #43232
- The CLI daemon no longer force-kills the browser on close, so a single close no longer re-enters graceful shutdown. Pull request #43229
- Worker.evaluate calls now reject when the worker closes or the page crashes instead of hanging. Pull request #43223
- Sharded runs now fail when no tests match across all shards while an empty individual shard still passes. Pull request #43173
- Nameless cookies are now sent and parsed per RFC 6265bis, with Cookie: x and Set-Cookie: token handled as name empty and value token. Pull request #43168
Why it matters
This week brings a release with WebMCP access, more descriptive skip and fail annotations, quieter reporter output and safer trace storage. It also fixes a long list of correctness issues in locators, fetching, workers, sharding and browser backends such as Firefox, Electron and BiDi Chromium.
Changelog entry
- V1.64.0 released with page.webmcp and frame.webmcp WebMCP access. Release
- Test.skip, test.fixme, test.fail and test.slow now record their string argument as an annotation description. Pull request #43198
- Added onlyFailures for individual reporters and --reporter-only-failures for the whole run. Pull request #42766
- Inert elements, their descendants and content outside the topmost modal dialog are now hidden for aria, getByRole, aria snapshots and accessible names. Pull request #43211
- Trace context options no longer store httpCredentials, extraHTTPHeaders, proxy credentials or storageState cookies. Pull request #43220
- Proxy authentication now works in BiDi Chromium. Pull request #43232
- Worker evaluate calls now reject when the worker closes or the page crashes. Pull request #43223
- The CLI daemon no longer force-kills the browser on close. Pull request #43229
- Sharded runs now fail when no tests match across all shards. Pull request #43173
- Nameless cookies are now serialized and parsed per RFC 6265bis. Pull request #43168
- String and URLSearchParams fetch params are now appended to the existing URL query. Pull request #43226
- A clock log replayed in parts now keeps its paused state. Pull request #43224
V1.64.0 is out with WebMCP support on page and frame. Also this week: test.skip descriptions, --reporter-only-failures, inert-aware aria, safer trace options, and fixes for locators, fetch, workers and sharding.
V1.64.0 shipped this week with page.webmcp and frame.webmcp for testing tools a page registers through the experimental WebMCP browser API. Outside the release: test.skip, test.fixme, test.fail and test.slow now take a description that is recorded as an annotation; reporters gained onlyFailures and the run gained --reporter-only-failures; inert elements and content outside the topmost modal dialog are now hidden for aria; trace context options no longer store credentials, extra headers or storage state cookies; and fixes landed for BiDi Chromium proxies, worker evaluate rejection, the CLI daemon close path, sharded runs with no matching tests, and nameless cookie handling.
Week of September 28, 2026
What shipped
- APIRequestContext gains cookies() and clearCookies() methods to match BrowserContext, with standalone request contexts managing their own cookie jar. Pull request #43052
- APIRequestContext adds addCookies() method to set cookies, delegating to browser context for page.request or managing standalone request context cookies. Pull request #43032
- Locators gain page.getByRef(ref) to locate elements by their aria ref from page.ariaSnapshot({ mode: 'ai' }). Pull request #43055
- WebAuthn virtual credentials now support signCount option, persisted in storageState and restored for credential reuse workflows. Pull request #43041
- Video recording upgraded to ffmpeg r1013 and now encodes with VP9 codec instead of VP8 in WebM format. Pull request #43021
- MCP
browser_tabsaction accepts optional isolatedContext parameter to create tabs that share cookies and storage within named contexts. Pull request #43087 - Action retry backoff moved to server-side waiting instead of in-page setTimeout, fixing timeouts when javaScriptEnabled is false. Pull request #43012
- MCP and npx playwright open/codegen now extract proxy server credentials into explicit proxy.username and proxy.password instead of dropping them. Pull request #43071
- Browser_find MCP tool and CLI find command gain maxResults option to limit result output. Pull request #42947
- Performance improved by reusing a single DOM Range per document instead of creating new ranges for every text node visibility check. Pull request #43076
Why it matters
This week adds cookie management to standalone API requests, WebAuthn persistence improvements, video codec upgrades, and significant performance optimizations for pages with many display:contents elements. Several fixes address edge cases in proxy handling, action retries with disabled JavaScript, and MCP tool functionality.
Changelog entry
- Api: Add APIRequestContext.cookies() and clearCookies() to manage cookies in standalone request contexts and delegated page.request/context.request Pull request #43052
- Api: Add APIRequestContext.addCookies() to set cookies in standalone request contexts and delegated page.request/context.request Pull request #43032
- Locator: Add page.getByRef(ref) to locate elements by aria ref from page.ariaSnapshot({ mode: 'ai' }) Pull request #43055
- Webauthn: Add signCount option to credentials.create() and return current signature counter from create()/get() Pull request #43041
- Video: Upgrade ffmpeg to r1013 and encode videos with VP9 codec instead of VP8 Pull request #43021
- Mcp: Allow creating tabs in isolated browser contexts with shared cookies and storage via isolatedContext parameter Pull request #43087
- Fix: Move action retry backoff to server-side waiting instead of in-page setTimeout Pull request #43012
- Fix: Extract proxy server credentials into explicit proxy.username/proxy.password in MCP and npx playwright open/codegen Pull request #43071
- Mcp: Add maxResults option to
browser_findMCP tool and --max-results flag to CLI find command Pull request #42947 - Perf: Reuse single DOM Range per document instead of creating new ranges for every text node visibility check Pull request #43076
- Fix: Close pages that crashed before connecting over CDP in _onTargetCrashed instead of being special-cased in Page._markInitialized Pull request #43075
- Fix: Do not hang on pages without a renderer when connecting over CDP by sending Inspector.enable for attached pages Pull request #42936
Playwright shipped: APIRequestContext cookies support, page.getByRef locators, WebAuthn signCount tracking, VP9 video encoding, MCP isolated contexts, and server-side action retry backoff.
This week's Playwright updates include APIRequestContext.cookies()/addCookies()/clearCookies() mirroring BrowserContext functionality, page.getByRef() for aria-ref locators, WebAuthn signCount persistence across sessions, upgraded video encoding to VP9, MCP browser_tabs with isolated contexts, and fixed action retries when JavaScript is disabled. Performance gains from optimized DOM Range reuse and improved proxy credential handling.
Week of September 21, 2026
What shipped
- Locators now support within() to resolve relative locators like nth() inside parent elements, enabling patterns like page.getByRole('cell').nth.within(page.getByRole('row')). Pull request #42887
- Test runner gained --shuffle flag to randomize test execution order while preserving serial suites and dependency ordering. Pull request #42877
- Locator parser rewritten with per-language recursive descent parsers for JavaScript, Python, Java, and C# instead of regex-based parsing. Pull request #42895
- List reporter added printWorkerIndex option to prefix output with the worker index that produced each line. Pull request #42886
- Test sharding no longer counts statically skipped tests toward shard sizes, preventing starvation of shards with many skipped tests. Pull request #42916
- Tracing now races DOM snapshots against progress to prevent unresponsive pages from blocking before/after hooks. Pull request #42919
- Fixed Chromium keyup events on numpad keys to report the correct location code matching keydown events. Pull request #42913
- Fixed URLPattern routing to always match case-insensitively, preventing requests from being dropped on case mismatches. Pull request #42920
- Increased max screencast frames in flight from 3 to 5 (10 at >30fps) to reduce frame drops under heavy load. Pull request #42929
- CLI documentation now includes --debug modes and --run-agents option descriptions. Pull request #42890
Why it matters
This week includes significant improvements to test authoring with new locator syntax and test ordering, plus parser refactoring that improves reliability across languages. Multiple fixes address edge cases in tracing, routing, and screencast recording that affect test stability.
Changelog entry
- Feat(locator): add locator.within() to resolve relative locators inside parent elements Pull request #42887
- Feat(test-runner): add --shuffle to run tests in random order Pull request #42877
- Chore(locators): rewrite locator parser with per-language recursive descent parsers Pull request #42895
- Feat(list reporter): add printWorkerIndex option to prefix output with worker index Pull request #42886
- Fix(test runner): do not count statically skipped tests when sharding Pull request #42916
- Fix(tracing): do not hang on unresponsive page when capturing snapshots Pull request #42919
- Fix(route): do not drop requests matching case-insensitive URLPattern Pull request #42920
- Fix(chromium): report numpad location on keyup Pull request #42913
- Fix(chromium): allow more screencast frames in flight Pull request #42929
- Fix(mcp): report a dialog opened during navigation instead of timing out Pull request #42908
New in Playwright: locator.within() for relative selectors, test --shuffle flag, rewritten locator parser with per-language support, and fixes for tracing hangs, URLPattern routing, and screencast frames.
This week's Playwright updates focus on test authoring and reliability. Locators now support within() for elegant relative selector patterns. The test runner gained --shuffle for randomized test order. A major parser rewrite replaces regex with per-language recursive descent parsers for JavaScript, Python, Java, and C#. Multiple fixes address test stability: preventing tracing from hanging on unresponsive pages, fixing URLPattern routing, reducing screencast frame drops, and improving test sharding. Plus new list reporter worker index output.