What microsoft/playwright shipped
Written by FoxPlug from public releases; not affiliated with Microsoft. An automatic summary of the public release, pull request and commit data of github.com/microsoft/playwright. Microsoft did not write it and does not use or endorse FoxPlug. Every line links to the public change it describes.
Get a weekly update like this for your product, free
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(2).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.