click
Click on web page elements using CSS selectors to automate browser interactions for testing or data extraction tasks.
Instructions
Click on an element by selector
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"selector": "<selector>"
},
"name": "click"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | ||
| page_id | No |
Implementation Reference
- src/playwright_mcp/server.py:237-244 (handler)The main handler logic for the 'click' tool, which retrieves the selector from arguments, gets the active page, clicks the element, and returns a confirmation message.
elif name == "click": selector = arguments.get("selector") if not selector: raise ValueError("Selector is required") page = get_active_page(arguments.get("page_id")) await page.click(selector) return [types.TextContent(type="text", text=f"Clicked element at selector: {selector}")] - src/playwright_mcp/server.py:97-108 (registration)Registration of the 'click' tool in the list_tools() function, including name, description, and input schema definition.
types.Tool( name="click", description="Click on an element by selector", inputSchema={ "type": "object", "properties": { "selector": {"type": "string"}, "page_id": {"type": "string"}, }, "required": ["selector"], }, ), - src/playwright_mcp/server.py:200-210 (helper)Helper function used by the 'click' handler (and others) to retrieve the active Playwright Page instance based on the provided page_id or the current default.
def get_active_page(page_id: Optional[str] = None) -> Page: """Get the active page based on page_id or current default.""" global current_page_id if page_id is None: page_id = current_page_id if page_id not in pages: raise ValueError(f"Page not found: {page_id}") return pages[page_id]