browser_double_click
Perform a double-click action on a web element using Selenium WebDriver. Specify element locator strategy and value to automate browser interactions for testing or automation workflows.
Instructions
Perform double click on an element
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| by | Yes | Locator strategy to find element | |
| value | Yes | Value for the locator strategy | |
| timeout | No | Maximum time to wait for element in milliseconds |
Implementation Reference
- src/tools/actionTools.ts:92-115 (registration)Registers the browser_double_click MCP tool with input schema based on locatorSchema and a handler that delegates to ActionService.doubleClickElement
server.tool( 'browser_double_click', 'Perform double click on an element', { ...locatorSchema }, async ({ by, value, timeout = 15000 }) => { try { const driver = stateManager.getDriver(); const actionService = new ActionService(driver); await actionService.doubleClickElement({ by, value, timeout }); return { content: [{ type: 'text', text: 'Double click performed' }], }; } catch (e) { return { content: [ { type: 'text', text: `Error performing double click: ${(e as Error).message}`, }, ], }; } } ); - src/services/actionService.ts:32-37 (handler)Implements the double-click functionality by waiting for the element using the locator, then performing a doubleClick action with Selenium WebDriver.
async doubleClickElement(params: LocatorParams): Promise<void> { const locator = LocatorFactory.createLocator(params.by, params.value); const element = await this.driver.wait(until.elementLocated(locator), params.timeout || 15000); const actions = this.driver.actions({ bridge: true }); await actions.doubleClick(element).perform(); } - src/types/index.ts:29-35 (schema)Zod schema defining the input parameters for locating the element to double-click (by, value, optional timeout).
export const locatorSchema = { by: z .enum(['id', 'css', 'xpath', 'name', 'tag', 'class', 'link', 'partialLink']) .describe('Locator strategy to find element'), value: z.string().describe('Value for the locator strategy'), timeout: z.number().optional().describe('Maximum time to wait for element in milliseconds'), }; - src/tools/index.ts:11-11 (registration)Calls registerActionTools which includes the browser_double_click tool registration.
registerActionTools(server, stateManager);