Skip to main content
Glama

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
NameRequiredDescriptionDefault
refYesElement ref or CSS selector
propertyYesState to check

Implementation Reference

  • 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 };
        }
      }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TacosyHorchata/Pilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server