browser_hover
Hover over web page elements to trigger interactive features like dropdown menus or tooltips during browser automation testing with Playwright MCP.
Instructions
Hover over element on page
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| element | Yes | Human-readable element description used to obtain permission to interact with the element | |
| ref | Yes | Exact target element reference from the page snapshot |
Implementation Reference
- src/tools/snapshot.ts:121-136 (handler)The handler function that executes the browser_hover tool logic: hovers over the element using the locator from the page snapshot.
handle: async (context, params) => { const snapshot = context.currentTabOrDie().snapshotOrDie(); const locator = snapshot.refLocator(params); const code = [ `// Hover over ${params.element}`, `await page.${await generateLocator(locator)}.hover();` ]; return { code, action: () => locator.hover(), captureSnapshot: true, waitForNetwork: true, }; }, - src/tools/snapshot.ts:113-119 (schema)Schema definition for the browser_hover tool, specifying name, title, description, inputSchema (elementSchema), and type.
schema: { name: 'browser_hover', title: 'Hover mouse', description: 'Hover over element on page', inputSchema: elementSchema, type: 'readOnly', }, - src/tools/snapshot.ts:44-47 (schema)Zod schema for element input, used by browser_hover and other interaction tools.
const elementSchema = z.object({ element: z.string().describe('Human-readable element description used to obtain permission to interact with the element'), ref: z.string().describe('Exact target element reference from the page snapshot'), }); - src/tools/snapshot.ts:219-226 (registration)Local registration: hover tool included in the default export array from snapshot.ts
export default [ snapshot, click, drag, hover, type, selectOption, ]; - src/tools.ts:35-50 (registration)Global registration: snapshotTools array includes ...snapshot (which exports browser_hover), used by the MCP server.
export const snapshotTools: Tool<any>[] = [ ...common(true), ...console, ...dialogs(true), ...files(true), ...install, ...keyboard(true), ...navigate(true), ...network, ...pdf, ...screenshot, ...snapshot, ...tabs(true), ...testing, ...wait(true), ];