pilot_element_state
Check element states like visibility, enabled status, or focus in browser automation to verify UI behavior during testing or interaction.
Instructions
Check element state: visible, hidden, enabled, disabled, checked, editable, focused.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Element ref or CSS selector | |
| property | Yes | State to check |
Implementation Reference
- src/tools/page.ts:161-189 (handler)The handler function for the 'pilot_element_state' tool, which resolves the element reference and checks its state based on the provided property.
server.tool( 'pilot_element_state', 'Check element state: visible, hidden, enabled, disabled, checked, editable, focused.', { ref: z.string().describe('Element ref or CSS selector'), property: z.enum(['visible', 'hidden', 'enabled', 'disabled', 'checked', 'editable', 'focused']).describe('State to check'), }, async ({ ref, property }) => { await bm.ensureBrowser(); try { const page = bm.getPage(); const resolved = await bm.resolveRef(ref); const locator = 'locator' in resolved ? resolved.locator : page.locator(resolved.selector); let result: boolean; switch (property) { case 'visible': result = await locator.isVisible(); break; case 'hidden': result = await locator.isHidden(); break; case 'enabled': result = await locator.isEnabled(); break; case 'disabled': result = await locator.isDisabled(); break; case 'checked': result = await locator.isChecked(); break; case 'editable': result = await locator.isEditable(); break; case 'focused': result = await locator.evaluate((el) => el === document.activeElement); break; } return { content: [{ type: 'text' as const, text: String(result) }] }; } catch (err) { return { content: [{ type: 'text' as const, text: wrapError(err) }], isError: true }; } }