# Browser Test > Receta de test de UI: combina `browser-record` (captura) y `browser-replay` (verificación) para que cada test genere un artefacto RVF replayable, no una ejecución efímera. Fuente: https://skillsagentes.com/skills/ruvnet/ruflo/browser-test Markdown: https://skillsagentes.com/skills/ruvnet/ruflo/browser-test.md Repositorio: https://github.com/ruvnet/ruflo Autor: ruvnet Licencia: MIT Actualizado: el mes pasado Coste de contexto: 37 tok instalada, 900 tok al activarse, 900 tok con todos los archivos del bundle Bundle: 1 archivo, 4 KB Permisos que pide: mcp__plugin_ruflo-core_ruflo__browser_open mcp__plugin_ruflo-core_ruflo__browser_click mcp__plugin_ruflo-core_ruflo__browser_fill mcp__plugin_ruflo-core_ruflo__browser_type mcp__plugin_ruflo-core_ruflo__browser_press mcp__plugin_ruflo-core_ruflo__browser_check mcp__plugin_ruflo-core_ruflo__browser_uncheck mcp__plugin_ruflo-core_ruflo__browser_select mcp__plugin_ruflo-core_ruflo__browser_hover mcp__plugin_ruflo-core_ruflo__browser_wait mcp__plugin_ruflo-core_ruflo__browser_screenshot mcp__plugin_ruflo-core_ruflo__browser_snapshot mcp__plugin_ruflo-core_ruflo__browser_get-text mcp__plugin_ruflo-core_ruflo__browser_get-title mcp__plugin_ruflo-core_ruflo__browser_get-url mcp__plugin_ruflo-core_ruflo__browser_get-value mcp__plugin_ruflo-core_ruflo__browser_eval mcp__plugin_ruflo-core_ruflo__browser_close mcp__plugin_ruflo-core_ruflo__browser_session-list mcp__plugin_ruflo-core_ruflo__aidefence_is_safe bash read write ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add ruvnet/ruflo --skill browser-test --agent claude-code # Cursor npx -y skills add ruvnet/ruflo --skill browser-test --agent cursor # Codex npx -y skills add ruvnet/ruflo --skill browser-test --agent codex # Gemini CLI npx -y skills add ruvnet/ruflo --skill browser-test --agent gemini # Windsurf npx -y skills add ruvnet/ruflo --skill browser-test --agent windsurf # Cline npx -y skills add ruvnet/ruflo --skill browser-test --agent cline ``` ## Qué hace - Compone `browser-record` (captura) y `browser-replay` (verificación) para que cada test produzca un artefacto RVF replayable. - Ejecuta interacciones en el navegador (clic, rellenar, escribir, seleccionar) y valida texto, valor, título y URL. - Toma capturas de pantalla antes/después de interacciones clave y snapshots de accesibilidad en cada navegación. - Cierra la sesión con un veredicto pass/fail y opcionalmente la compara contra una sesión previa con `--against`. ## Cuándo usarla - Verificar funcionalidad de UI, flujos de usuario o que cambios de frontend funcionen en un navegador real. - Producir una sesión base contra la que futuras regresiones puedan compararse. - Volver a ejecutar una sesión de test guardada cuando falla el CI, sin reescribir el test. ## Qué la activa - "Prueba que el flujo de login funcione en el navegador" - "Ejecuta un test de UI y guarda captura de resultados" - "Vuelve a correr esta sesión de test guardada" ## Antes de instalar - El contenido validado pasa por el filtro `aidefence_is_safe` antes de resumirse; requiere el servidor MCP de ruflo-browser. ## Archivos - SKILL.md — 4 KB ## SKILL.md Reproducido tal cual desde ruvnet/ruflo bajo MIT. Esta sección es el documento original y está en inglés. # Browser Test Automated UI testing. **Now backed by a recorded RVF session container** instead of an ephemeral run, so every test produces a replayable artifact. ## When to use - Verifying UI functionality, user flows, or that frontend changes work in a real browser. - Producing a baseline session that future regressions can diff against. - Re-running a stored test session when CI fails (no need to re-author the test). ## Steps 1. **Record the test run** by composing `browser-record`: - Allocates an RVF container with `--kind browser-session`. - Begins a ruvector trajectory. 2. **Drive interactions** — `browser_open`, `browser_click`, `browser_fill`, `browser_type`, `browser_select`. Each action emits a `trajectory-step`. 3. **Wait** for elements / network idle via `browser_wait` before assertions. 4. **Validate** with `browser_get-text` / `browser_get-value` / `browser_get-title` / `browser_get-url`. Validation outcomes go into `findings.md` inside the RVF container. 5. **Screenshot** before / after key interactions for visual regression. Filenames follow `.png`. 6. **Snapshot** the accessibility tree at navigation boundaries. 7. **End** the session: `trajectory-end --verdict pass|fail`, `rvf compact`, AgentDB index in `browser-sessions`. 8. **(Optional) Diff against `--against `**: invoke `browser-screenshot-diff` to compare the new run with a baseline. ## Navigation - `browser_back` / `browser_forward` for history navigation - `browser_reload` to refresh the page - `browser_scroll` to scroll to elements or coordinates ## What changed from v0.1.0 - The skill no longer ends with `browser_close` alone — it ends with the session-end protocol. - Selectors discovered during the test land in `browser-selectors` (host:intent), so the next test can find them by embedding similarity. - Validation outputs pass `aidefence_is_safe` before any LLM-facing summary; injection-flagged content is quarantined to `findings.md`. - The same skill, used in CI, now produces an artifact that `/ruflo-browser replay` can re-drive. ## Tips - Use `browser_wait` before assertions to handle async rendering. - For visual regression, save the parent session id and pass `--against ` on the next run. - Use `browser_eval` for custom JavaScript assertions — but redact any returned strings via the `aidefence_is_safe` gate before logging. ## Dónde encaja - Categoría: [Testing y QA](https://skillsagentes.com/categorias/testing-qa.md) — Flujos de testing unitario, de integración y end-to-end. - Creador: [ruvnet](https://skillsagentes.com/creators/ruvnet.md) — 275 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Harness Gepa](https://skillsagentes.com/skills/ruvnet/ruflo/harness-gepa.md): Inspecciona y audita genomas GEPA: carga y valida un genoma, renderiza el system prompt que compila, o clasifica los modos de fallo de una transcripción de ejecución. - [Deepseek Reason](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-reason.md): Completion en modo razonamiento contra deepseek-reasoner (R1) de DeepSeek. Devuelve el chain-of-thought por separado de la respuesta final. Lee DEEPSEEK_API_KEY y degrada si falta o la API no responde. - [Deepseek Chat](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-chat.md): Completion de un solo turno contra el modelo deepseek-chat de DeepSeek vía /v1/chat/completions. Lee DEEPSEEK_API_KEY y degrada con status:degraded si falta o la API no responde. Para tareas sin razonamiento. - [Adr Index](https://skillsagentes.com/skills/ruvnet/ruflo/adr-index.md): Construye o reconstruye el índice de ADRs y su grafo de dependencias ejecutando scripts/import.mjs, en vez de cientos de llamadas MCP. - [Agntcy Status](https://skillsagentes.com/skills/ruvnet/ruflo/agntcy-status.md): Muestra el estado de la integración AGNTCY/SLIM/CASA: si los paquetes están instalados, qué transporte está activo y si el enforcement de CASA está habilitado. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)