Camofox Browser
Inicio con Camofox: crear una pestaña de prueba y verificar su instantánea
Sigue un flujo REST mínimo en localhost con identidad, autenticación y comprobaciones explícitas antes de actuar o importar credenciales.
Qué aprenderás
- userId y sessionKey identifican estado, no autorizan.
- Verifica URL, instantánea y referencias antes de actuar.
- Pagina observaciones capturadas y renueva tras cambios.
Antes de empezar
- HTTP y JSON básicos
- Servicio aislado y página propia o permitida
Explica la frontera real del servicio y verifica la muestra de observación o ciclo propuesta.
Conclusiones clave
- userId y sessionKey identifican estado, no autorizan.
- Verifica URL, instantánea y referencias antes de actuar.
- Pagina observaciones capturadas y renueva tras cambios.
Comenzar con un servicio local protegido
Usa una instalación revisada vinculada a loopback y una clave global proporcionada mediante tu mecanismo de secretos. El capítulo de despliegue explica paquete y navegador. Esta práctica no necesita cookies importadas, proxy, trazas ni un puerto público. Empieza con example.com o una página propia, sin enviar formularios ni autenticar cuentas de terceros.
El manejador POST /tabs exige userId y sessionKey. sessionKey es el nombre preferido de un grupo; listItemId se mantiene como alternativa antigua. Asigna etiquetas distintivas al usuario y grupo del experimento y guarda el ID devuelto. No confundas estos identificadores con autenticación Bearer: una etiqueta identifica estado, no acredita quién puede controlarlo.
Leer lo que observó realmente el navegador
Solicita GET /tabs/:tabId/snapshot con el mismo userId. Comprueba URL, texto y cantidad de referencias antes de planificar una interacción. En una muestra conocida verifica encabezado y etiquetas de campos. Si faltan referencias, distingue una página sin controles pertinentes de un fallo al generarlas; no inventes un selector ni pulses una coordenada recordada.
En observaciones grandes, inspecciona truncated, hasMore y nextOffset. Continúa con el desplazamiento devuelto, sin asumir que la primera respuesta contiene todos los controles. La ruta de offset positivo puede reutilizar lastSnapshot: pagina una observación capturada, no promete releer la página. Después de cambiarla, solicita una instantánea inicial nueva antes de interpretar fragmentos posteriores.
Terminar sin una limpieza excesiva
Actúa solo después de identificar el objetivo en el estado actual y confirmar que la operación está autorizada. Si navegación o actualización dinámica invalidan una referencia, vuelve a observar y reconsidera la intención. No repitas ciegamente un envío porque la respuesta HTTP tarde: comprueba si el resultado visible ya cambió.
Al terminar, cierra la pestaña concreta y verifica su ausencia en la lista del usuario de prueba. Borrar toda una sesión o almacenamiento persistente tiene efectos mayores y no es necesario aquí. El ejemplo es un cuerpo REST propuesto, no evidencia de que esta revisión haya lanzado el navegador ni realizado una acción en línea.
Pasos de implementación
- 1
Inicia el servicio aislado con loopback y clave de acceso.
- 2
Envía el cuerpo a /tabs y guarda el ID devuelto.
- 3
Solicita /tabs/:tabId/snapshot?userId=fixture-reader con el mismo token Bearer.
- 4
Comprueba el encabezado y cierra solo la pestaña creada.
Ejemplo para copiar
{"userId":"fixture-reader","sessionKey":"read-only-20260908","url":"https://example.com","trace":false}Preguntas frecuentes
¿sessionKey es otra clave API?
No. Nombra un grupo de pestañas; la autenticación viaja por separado en Authorization.
¿Un offset posterior actualiza la página?
No necesariamente. El manejador inspeccionado utiliza lastSnapshot para offsets positivos cuando está disponible.
Fuentes
- README.mdFuente verificada 2026-09-08
- package.jsonFuente verificada 2026-09-08
- DockerfileFuente verificada 2026-09-08
- lib/auth.jsFuente verificada 2026-09-08
- lib/snapshot.jsFuente verificada 2026-09-08
- lib/extract.jsFuente verificada 2026-09-08
- lib/config.jsFuente verificada 2026-09-08
- lib/reporter.jsFuente verificada 2026-09-08
- lib/page-lease.jsFuente verificada 2026-09-08
- server.jsFuente verificada 2026-09-08
- tests/unit/snapshot.test.jsFuente verificada 2026-09-08
- tests/unit/auth.test.jsFuente verificada 2026-09-08