browser_select
Select dropdown options on web pages using CSS selectors to automate form interactions and data entry in browser environments.
Instructions
Select an element on the page with Select tag using CSS selector
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for element to select | |
| value | Yes | Value to select |
Implementation Reference
- index.ts:357-396 (handler)Handler implementation for the 'browser_select' tool within the handleToolCall switch statement. It selects an option in a select element using the provided CSS selector and value, includes error handling for strict mode violations with a retry on the first matching element.case ToolName.BrowserSelect: try { await page.locator(args.selector).selectOption(args.value); return { content: [{ type: "text", text: `Selected ${args.selector} with: ${args.value}`, }], isError: false, }; } catch (error) { if((error as Error).message.includes("strict mode violation")) { console.log("Strict mode violation, retrying on first element..."); try { await page.locator(args.selector).first().selectOption(args.value); return { content: [{ type: "text", text: `Selected ${args.selector} with: ${args.value}`, }], isError: false, }; } catch (error) { return { content: [{ type: "text", text: `Failed (twice) to select ${args.selector}: ${(error as Error).message}`, }], isError: true, }; } } return { content: [{ type: "text", text: `Failed to select ${args.selector}: ${(error as Error).message}`, }], isError: true, }; }
- index.ts:98-105 (schema)Input schema definition for the 'browser_select' tool, specifying required 'selector' (CSS selector) and 'value' (option value) parameters.inputSchema: { type: "object", properties: { selector: { type: "string", description: "CSS selector for element to select" }, value: { type: "string", description: "Value to select" }, }, required: ["selector", "value"], },
- index.ts:95-106 (registration)Tool registration object for 'browser_select' (ToolName.BrowserSelect) in the TOOLS array, including name, description, and input schema. This array is used in the ListToolsRequest handler.{ name: ToolName.BrowserSelect, description: "Select an element on the page with Select tag using CSS selector", inputSchema: { type: "object", properties: { selector: { type: "string", description: "CSS selector for element to select" }, value: { type: "string", description: "Value to select" }, }, required: ["selector", "value"], }, },
- index.ts:22-33 (helper)Enum definition including ToolName.BrowserSelect = 'browser_select', used throughout for tool name references.enum ToolName { BrowserNavigate = "browser_navigate", BrowserScreenshot = "browser_screenshot", BrowserClick = "browser_click", BrowserClickText = "browser_click_text", BrowserFill = "browser_fill", BrowserSelect = "browser_select", BrowserSelectText = "browser_select_text", BrowserHover = "browser_hover", BrowserHoverText = "browser_hover_text", BrowserEvaluate = "browser_evaluate" }