hover
Simulate mouse hover interactions on web elements using CSS selectors for browser automation and UI testing in ARM64 environments.
Instructions
Hover over an element on the page
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for the element to hover |
Implementation Reference
- index.js:722-748 (handler)The primary handler function for the 'hover' tool. It ensures Chromium is running, locates the target element using DOM.querySelector, computes its center coordinates from the box model, and dispatches a 'mouseMoved' input event to simulate hovering.
async hover(selector) { await this.ensureChromium(); const doc = await this.sendCDPCommand('DOM.getDocument'); const element = await this.sendCDPCommand('DOM.querySelector', { nodeId: doc.root.nodeId, selector }); if (!element.nodeId) { throw new Error(`Element not found: ${selector}`); } const box = await this.sendCDPCommand('DOM.getBoxModel', { nodeId: element.nodeId }); const quad = box.model.content; const x = (quad[0] + quad[4]) / 2; const y = (quad[1] + quad[5]) / 2; await this.sendCDPCommand('Input.dispatchMouseEvent', { type: 'mouseMoved', x, y }); return { content: [{ type: 'text', text: `Hovered over element: ${selector}` }], }; } - index.js:199-212 (schema)The input schema definition for the 'hover' tool, specifying a required 'selector' parameter of type string.
{ name: 'hover', description: 'Hover over an element on the page', inputSchema: { type: 'object', properties: { selector: { type: 'string', description: 'CSS selector for the element to hover', }, }, required: ['selector'], }, }, - index.js:363-364 (registration)The switch case in the CallToolRequestSchema handler that routes 'hover' tool calls to the hover method.
case 'hover': return await this.hover(args.selector);