fix(test): support multiple contexts with --debug=cli - #42503
Conversation
Bind the browser once instead of once per context, and pause with debugging instructions once per test. Fixes: microsoft#42485
Test results for "tests 1"4 flaky46302 passed, 1149 skipped Merge workflow run. |
This comment has been minimized.
This comment has been minimized.
🟢 Green — the failures are pre-existing flake and infra, not this PRHi, I'm the Playwright bot and I took a look at the CI failures here. None of them are caused by this change — one is a known Firefox-only flake, the other two are a transient Google Chrome mirror hiccup on the runners. DetailsThis PR only touches the Pre-existing flake / infra
Triaged by the Playwright bot - agent run |
Test results for "MCP"8301 passed, 1371 skipped Merge workflow run. |
612050e
into
microsoft:main
## What's New ### 🎉 New Commands - **`webmcp-list` / `webmcp-call`** — List and call the tools a page registers through the [WebMCP](https://webmachinelearning.github.io/webmcp/) API, letting the page do the work instead of driving its UI. When a page has WebMCP tools, the page status reports how many are available ([#42613](microsoft/playwright#42613)). WebMCP is experimental, see [WebMCP in Chrome](https://developer.chrome.com/docs/ai/webmcp) for how to enable it. ### Other Changes - Headless sessions now shut down after one hour without commands, so a session an agent never closed no longer holds a browser; run `open` again to start a new one. Use `open --idle-timeout <ms>` (config `timeouts.idle`, env `PLAYWRIGHT_MCP_IDLE_TIMEOUT`) to change the timeout, `0` disables it. Headed browsers stay open, and attached browsers are only detached when `attach --idle-timeout <ms>` is set ([#42676](microsoft/playwright#42676)) - The skill includes a guide for attaching screenshots and videos to pull requests with `gh --attach` ([#42645](microsoft/playwright#42645)) ## Bug Fixes - Session daemons exit when their control socket is deleted or replaced, instead of staying alive with the browser ([#42454](microsoft/playwright#42454)) - Explicitly named output files in a nested directory (e.g. `screenshot --filename=sub/shot.png`) no longer fail with `ENOENT` ([#42540](microsoft/playwright#42540)) - Video chapters and screencast overlays are no longer hidden behind open dialogs and popovers ([#42642](microsoft/playwright#42642)) - `npx playwright test --debug=cli` works for tests that create more than one browser context and for every test in a worker, not just the first ([#42503](microsoft/playwright#42503)) - With `PLAYWRIGHT_MCP_EXTENSION_TOKEN` set, `attach --extension` fails after 30 seconds with a hint when the extension never connects (e.g. the token belongs to another Chrome profile) instead of hanging forever ([#42525](microsoft/playwright#42525)) - Disable the Chromium sandbox by default on Linux for the bundled Chromium build, which lacks the setuid sandbox helper ([#42490](microsoft/playwright#42490)) ## Upgrading ```bash npm install -g @playwright/cli@0.1.20 ```
Summary
browser.bind()was called for every context created in a test, so a secondbrowser.newContext()failed withServer is already started. Bind the browser once and reuse the session name.--debug=clionly ever worked for a single test with a single context. Pausing and printing the attach instructions is now done once per test.Fixes #42485