browser_right_click
Perform right-click actions on web elements using Selenium WebDriver to access context menus and browser functionality for automation and testing.
Instructions
Perform right click (context 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/services/actionService.ts:39-44 (handler)Core implementation of right-click action using Selenium WebDriver's contextClick on the located element.async rightClickElement(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.contextClick(element).perform(); }
- src/types/index.ts:29-35 (schema)Zod schema for input parameters (by, value, timeout) used in the browser_right_click tool.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/actionTools.ts:117-140 (registration)Registers the 'browser_right_click' MCP tool with server, schema, description, and wrapper handler that delegates to ActionService.server.tool( 'browser_right_click', 'Perform right click (context click) on an element', { ...locatorSchema }, async ({ by, value, timeout = 15000 }) => { try { const driver = stateManager.getDriver(); const actionService = new ActionService(driver); await actionService.rightClickElement({ by, value, timeout }); return { content: [{ type: 'text', text: 'Right click performed' }], }; } catch (e) { return { content: [ { type: 'text', text: `Error performing right click: ${(e as Error).message}`, }, ], }; } } );