{"record":{"id":"cfd79b1281441b30","repo":"garrytan/gstack","slug":"usage-browse-is-property-selector-nproperties","errorCode":null,"errorMessage":"Usage: browse is <property> <selector>\\nProperties: visible, hidden, enabled, disabled, checked, editable, focused","messagePattern":"Usage: browse is <property> <selector>\\\\nProperties: visible, hidden, enabled, disabled, checked, editable, focused","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"browse/src/read-commands.ts","lineNumber":456,"sourceCode":"        `${e.method} ${e.url} → ${e.status || 'pending'} (${e.duration || '?'}ms, ${e.size || '?'}B)`\n      ).join('\\n');\n    }\n\n    case 'dialog': {\n      if (args[0] === '--clear') {\n        dialogBuffer.clear();\n        return 'Dialog buffer cleared.';\n      }\n      if (dialogBuffer.length === 0) return '(no dialogs captured)';\n      return dialogBuffer.toArray().map(e =>\n        `[${new Date(e.timestamp).toISOString()}] [${e.type}] \"${e.message}\" → ${e.action}${e.response ? ` \"${e.response}\"` : ''}`\n      ).join('\\n');\n    }\n\n    case 'is': {\n      const property = args[0];\n      const selector = args[1];\n      if (!property || !selector) throw new Error('Usage: browse is <property> <selector>\\nProperties: visible, hidden, enabled, disabled, checked, editable, focused');\n\n      const resolved = await session.resolveRef(selector);\n      let locator;\n      if ('locator' in resolved) {\n        locator = resolved.locator;\n      } else {\n        locator = target.locator(resolved.selector);\n      }\n\n      switch (property) {\n        case 'visible':  return String(await locator.isVisible());\n        case 'hidden':   return String(await locator.isHidden());\n        case 'enabled':  return String(await locator.isEnabled());\n        case 'disabled': return String(await locator.isDisabled());\n        case 'checked':  return String(await locator.isChecked());\n        case 'editable': return String(await locator.isEditable());\n        case 'focused': {\n          const isFocused = await locator.evaluate(","sourceCodeStart":438,"sourceCodeEnd":474,"githubUrl":"https://github.com/garrytan/gstack/blob/94993f74012782fd94416dd44b8314f6363a13a4/browse/src/read-commands.ts#L438-L474","documentation":"Error \"Usage: browse is <property> <selector>\\nProperties: visible, hidden, enabled, disabled, checked, editable, focused\" thrown in garrytan/gstack.","triggerScenarios":"Thrown at browse/src/read-commands.ts:456 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"94993f74012782fd94416dd44b8314f6363a13a4","analyzedAt":"2026-08-12T04:06:23.140Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}