Problem
When using browser_click in Claude Code to interact with web pages, clicks frequently timeout at the default 5000ms, even though the element is visible, enabled, and stable. All pre-click checks pass, but the actual click action itself times out.
Error
TimeoutError: browserBackend.callTool: Timeout 5000ms exceeded.
Call log:
- waiting for locator('aria-ref=e186')
- locator resolved to <button ...>新建 App</button>
- attempting click action
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
- performing click action
Note: the element resolves correctly, passes all actionability checks (visible, enabled, stable, scrolled into view), but still times out during "performing click action".
Reproduction context
- Site: App Store Connect (appstoreconnect.apple.com)
- Environment: Claude Code with Playwright MCP server
- Frequency: Happens consistently on this site, across multiple different buttons/elements
- Tools affected:
browser_click, browser_fill_form
Workaround
Using browser_run_code with Playwright's force: true option works reliably:
const el = page.locator('aria-ref=e186');
await el.click({ force: true });
This bypasses the actionability checks that have already passed anyway, and the click succeeds immediately.
Suggestion
Two possible improvements:
-
Add a force option to browser_click — Allow users to pass force: true to skip the redundant actionability wait when the element is already resolved and verified. This would avoid the need to drop down to browser_run_code for a simple click.
-
Increase default timeout or make it configurable per-call — The 5000ms default is too aggressive for heavier web apps (like App Store Connect) where click handlers involve framework-level processing. A per-call timeout parameter would help.
Either change would eliminate the need for the browser_run_code workaround.
Problem
When using
browser_clickin Claude Code to interact with web pages, clicks frequently timeout at the default 5000ms, even though the element is visible, enabled, and stable. All pre-click checks pass, but the actual click action itself times out.Error
Note: the element resolves correctly, passes all actionability checks (visible, enabled, stable, scrolled into view), but still times out during "performing click action".
Reproduction context
browser_click,browser_fill_formWorkaround
Using
browser_run_codewith Playwright'sforce: trueoption works reliably:This bypasses the actionability checks that have already passed anyway, and the click succeeds immediately.
Suggestion
Two possible improvements:
Add a
forceoption tobrowser_click— Allow users to passforce: trueto skip the redundant actionability wait when the element is already resolved and verified. This would avoid the need to drop down tobrowser_run_codefor a simple click.Increase default timeout or make it configurable per-call — The 5000ms default is too aggressive for heavier web apps (like App Store Connect) where click handlers involve framework-level processing. A per-call
timeoutparameter would help.Either change would eliminate the need for the
browser_run_codeworkaround.