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
TableJSON 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.doubleClickElementserver.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);