hover
Simulate mouse hover over a webpage element using a CSS selector for automated testing and interaction on ARM64 devices with the Chromium browser.
Instructions
Hover over an element on the page
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for the element to hover |
Implementation Reference
- index.js:722-748 (handler)The core handler function for the 'hover' tool. It ensures the browser is ready, queries the DOM for the specified selector, calculates the element's center position using getBoxModel, dispatches a mouseMoved event via CDP to simulate hovering, and returns a success message.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)Input schema definition for the 'hover' tool in the ListTools response, specifying the 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)Tool dispatch registration in the CallToolRequestSchema handler switch statement, mapping 'hover' calls to the hover method.case 'hover': return await this.hover(args.selector);