En agent-browser, abre la página, toma un snapshot interactivo, actúa con una referencia y verifica qué cambió. Si cambia la página, toma otro snapshot antes de usar una referencia. El número por sí solo no identifica el control.
Un usuario preguntó cómo funcionan las refs en aplicaciones que cambian el DOM. Otro recomendó comprobar si un fallo se ve y se reproduce. El ejercicio separa ambas preguntas. r/ClaudeAI · r/AI_Agents
Cómo se relacionan la CLI y la sesión
La CLI envía órdenes a un proceso en segundo plano y puede continuar en el mismo navegador. Usa el mismo nombre --session para todas las órdenes de la tarea. El snapshot describe la pestaña activa y la sesión identifica el estado del navegador que comparten los comandos.
Sesiones · Comparación de Tabbit y agent-browser · Agente de navegador · Automatización web
Abre la página de práctica
Usa una CLI instalada y un navegador configurado. Consulta la instalación oficial para tu plataforma. Puedes servir el archivo en loopback o abrir la página de práctica alojada. Lee el título y el nombre de cada botón. La salida muestra ref=e2 y el clic usa @e2.
Instalación oficial · Snapshots · Abrir la práctica
Ejecuta la práctica con seguridad
El archivo es HTML sin cuentas. Guarda fixture.html en una carpeta vacía y ejecuta el servidor en otra terminal. Confirma el título antes de continuar. Si usas la página alojada, sustituye la URL local.
python3 -m http.server 4173 --bind 127.0.0.1agent-browser --session refs-demo-a open http://127.0.0.1:4173/fixture.html
agent-browser --session refs-demo-a snapshot -i
Lee lo que necesitas para decidir
Empieza con snapshot -i al elegir un control. Si necesitas una explicación o un error, toma el snapshot completo o lee el estado. Un filtro puede omitir texto que sigue en la página. Si hay botones repetidos, confirma el contenedor antes de limitar la captura.
Reproduce una referencia obsoleta
Pulsa el botón que reemplaza el panel. La URL se mantiene y los botones originales desaparecen. En 0.41.2, @e3 devolvió código de salida 1 y un aviso de que no encontraba el botón original. Otra lectura mostró Panel B ready, confirmando que la acción no se había realizado.
agent-browser --session refs-demo-a click @e2
agent-browser --session refs-demo-a get text '#status'
agent-browser --session refs-demo-a click @e3Panel B ready
✗ Could not locate element with role=button name=Use original actionToma otro snapshot y verifica el resultado
El snapshot nuevo asignó @e5 a Use revised action. Al pulsarlo, leímos Panel B selected. En 0.26.0, el snapshot nuevo reutilizó @e3 para el botón de reemplazo. Confirma el rol y el nombre en cada ejecución, porque los números pueden variar.
agent-browser --session refs-demo-a snapshot -i
agent-browser --session refs-demo-a click @e5
agent-browser --session refs-demo-a get text '#status'| Control o estado | Resultado observado |
|---|---|
| Botón original | Use original action · @e3 |
| Botón nuevo | Use revised action · @e5 |
#status | Panel B selected |

Distingue las pruebas
El primer resultado confirma que el panel cambió. El error indica una búsqueda fallida del nombre anterior. La última lectura demuestra que la acción nueva tuvo efecto. Guarda juntos el snapshot y el estado.
Qué referencias puede conservar
La documentación actual indica que un nodo existente puede conservar su ref. Si se reemplaza, la herramienta puede buscar una coincidencia única por nombre y rol. En esta práctica desaparece el nombre original, por lo que falla esa búsqueda. Ante nombres repetidos, vuelve a observar y usa el contexto del contenedor.
Mantén las tareas en sesiones distintas
Pon nombres como refs-demo-a y refs-demo-b. Abrimos la misma URL en una segunda sesión con un perfil temporal separado. Mostró Panel A ready mientras la primera seguía en Panel B selected. Para separar estado persistente, comprueba el perfil. Dos clientes conectados al mismo navegador externo pueden compartir identidad.
agent-browser --session refs-demo-b open http://127.0.0.1:4173/fixture.html
agent-browser --session refs-demo-b get text '#status'
agent-browser --session refs-demo-a get text '#status'Agentes de automatización · Seguridad del agente · Conecta un navegador existente
Navegador del experimento
Ambas versiones usaron el ejecutable real de Tabbit Browser Dev con perfiles temporales en macOS. El experimento usó agent-browser y la validación de la página usó Tabbit CLI. Consulta la instalación oficial para tu plataforma.
Elige el aislamiento
La pestaña selecciona una página, la sesión conserva el estado entre comandos y el perfil determina dónde viven los datos en un inicio local. Conserva los ajustes dentro de la sesión y usa otro perfil temporal en la siguiente prueba. Un cambio de configuración de arranque puede reiniciar el navegador.
Cierra tu sesión y revisa fallos
Confirma el resultado antes de cerrar cada sesión por nombre. Usa session list para ver las sesiones activas. Si falla la nueva referencia, revisa la URL, la pestaña, el rol, el nombre y la visibilidad. Espera a que aparezca el estado que necesitas antes de reintentar.
| Fallo u observación | Próximo paso |
|---|---|
| Ref anterior tras cambiar el panel | Toma otro snapshot y busca la acción revisada |
| Número repetido en un snapshot nuevo | Verifica el nuevo nombre y rol |
| También falla la ref nueva | Revisa pestaña y estado visible |
agent-browser --session refs-demo-a close
agent-browser --session refs-demo-b close
agent-browser session listLista de primera tarea · Depura errores
Preguntas frecuentes
¿Qué devuelve snapshot -i?
Una vista interactiva con roles, nombres y referencias.
¿Por qué falla una referencia vieja?
El control puede haber desaparecido o la referencia puede cambiar con otro snapshot.
¿Puedo copiar @e5 de la guía?
Usa la referencia que corresponda al control en tu propio snapshot.
¿La misma URL garantiza las mismas refs?
Una aplicación puede cambiar los controles sin navegar.
¿Qué verifico después del clic?
El resultado real, como el mensaje de estado, la URL o el valor guardado.
¿Cómo cierro mi sesión de práctica?
Ejecuta close con su nombre y usa session list si hace falta.