Webapp Testing

Kit para interactuar y probar aplicaciones web locales usando Playwright. Permite verificar funcionalidad del frontend, depurar comportamiento de la interfaz, capturar capturas de pantalla del navegador y ver registros del navegador. licencia: Términos completos en LICENSE.txt

npx skills add https://github.com/anthropics/skills --skill webapp-testing

Web Application Testing

To test local web applications, write native Python Playwright scripts.

Helper Scripts Available:

  • scripts/with_server.py - Manages server lifecycle (supports multiple servers)

Always run scripts with --help first to see usage. DO NOT read the source until you try running the script first and find that a customized solution is abslutely necessary. These scripts can be very large and thus pollute your context window. They exist to be called directly as black-box scripts rather than ingested into your context window.

Decision Tree: Choosing Your Approach

User task → Is it static HTML?
    ├─ Yes → Read HTML file directly to identify selectors
    │         ├─ Success → Write Playwright script using selectors
    │         └─ Fails/Incomplete → Treat as dynamic (below)
    │
    └─ No (dynamic webapp) → Is the server already running?
        ├─ No → Run: python scripts/with_server.py --help
        │        Then use the helper + write simplified Playwright script
        │
        └─ Yes → Reconnaissance-then-action:
            1. Navigate and wait for networkidle
            2. Take screenshot or inspect DOM
            3. Identify selectors from rendered state
            4. Execute actions with discovered selectors

Example: Using with_server.py

To start a server, run --help first, then use the helper:

Single server:

python scripts/with_server.py --server "npm run dev" --port 5173 -- python your_automation.py

Multiple servers (e.g., backend + frontend):

python scripts/with_server.py \
  --server "cd backend && python server.py" --port 3000 \
  --server "cd frontend && npm run dev" --port 5173 \
  -- python your_automation.py

To create an automation script, include only Playwright logic (servers are managed automatically):

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True) # Always launch chromium in headless mode
    page = browser.new_page()
    page.goto('http://localhost:5173') # Server already running and ready
    page.wait_for_load_state('networkidle') # CRITICAL: Wait for JS to execute
    # ... your automation logic
    browser.close()

Reconnaissance-Then-Action Pattern

  1. Inspect rendered DOM:

    page.screenshot(path='/tmp/inspect.png', full_page=True)
    content = page.content()
    page.locator('button').all()
    
  2. Identify selectors from inspection results

  3. Execute actions using discovered selectors

Common Pitfall

Don't inspect the DOM before waiting for networkidle on dynamic apps ✅ Do wait for page.wait_for_load_state('networkidle') before inspection

Best Practices

  • Use bundled scripts as black boxes - To accomplish a task, consider whether one of the scripts available in scripts/ can help. These scripts handle common, complex workflows reliably without cluttering the context window. Use --help to see usage, then invoke directly.
  • Use sync_playwright() for synchronous scripts
  • Always close the browser when done
  • Use descriptive selectors: text=, role=, CSS selectors, or IDs
  • Add appropriate waits: page.wait_for_selector() or page.wait_for_timeout()

Reference Files

  • examples/ - Examples showing common patterns:
    • element_discovery.py - Discovering buttons, links, and inputs on a page
    • static_html_automation.py - Using file:// URLs for local HTML
    • console_logging.py - Capturing console logs during automation

Más skills de Anthropic

Algorithmic Art
Anthropic
Creación de arte algorítmico usando p5.js con aleatoriedad basada en semillas y exploración interactiva de parámetros. Úsalo cuando los usuarios soliciten crear arte mediante código, arte generativo, arte algorítmico, campos de flujo o sistemas de partículas. Crea arte algorítmico original en lugar de copiar el trabajo de artistas existentes para evitar violaciones de derechos de autor. licencia: Términos completos en LICENSE.txt
creativeofficial
Brand Guidelines
Anthropic
Aplica los colores oficiales de la marca y la tipografía de Anthropic a cualquier tipo de artefacto que pueda beneficiarse de tener la apariencia y el estilo de Anthropic. Úsalo cuando apliquen colores de marca, guías de estilo, formato visual o estándares de diseño de la empresa. licencia: Términos completos en LICENSE.txt
creativeofficial
Canvas Design
Anthropic
Crear arte visual hermoso en documentos .png y .pdf utilizando filosofía de diseño. Debes usar esta habilidad cuando el usuario solicite crear un póster, obra de arte, diseño u otra pieza estática. Crea diseños visuales originales, sin copiar el trabajo de artistas existentes para evitar violaciones de derechos de autor. licencia: Términos completos en LICENSE.txt
creativeofficial
Docx
Anthropic
Creación, edición y análisis integral de documentos con soporte para cambios controlados, comentarios, preservación de formato y extracción de texto. Cuando Claude necesita trabajar con documentos profesionales (archivos .docx) para: (1) Crear nuevos documentos, (2) Modificar o editar contenido, (3) Trabajar con cambios controlados, (4) Agregar comentarios, o cualquier otra tarea documental. licencia: Propietaria. LICENSE.txt contiene los términos completos
documentofficial
Frontend Design
Anthropic
Genera interfaces frontend distintivas y de calidad de producción que evitan la estética genérica de la IA.
developmentfeaturedofficial
Internal Comms
Anthropic
Un conjunto de recursos para ayudarme a redactar todo tipo de comunicaciones internas, utilizando los formatos que prefiere mi empresa. Claude debe usar esta habilidad cada vez que se le pida redactar algún tipo de comunicación interna (informes de estado, actualizaciones para la dirección, actualizaciones de terceros, boletines de la empresa, preguntas frecuentes, informes de incidentes, actualizaciones de proyectos, etc.). licencia: Términos completos en LICENSE.txt
official
MCP Builder
Anthropic
Guía para crear servidores MCP (Model Context Protocol) de alta calidad que permiten a los LLMs interactuar con servicios externos a través de herramientas bien diseñadas. Úsalo al construir servidores MCP para integrar APIs o servicios externos, ya sea en Python (FastMCP) o Node/TypeScript (MCP SDK). licencia: Términos completos en LICENSE.txt
developmentofficial
Artifacts Builder
Anthropic
Conjunto de herramientas para crear artefactos HTML complejos de múltiples componentes en claude.ai utilizando tecnologías frontend web modernas (React, Tailwind CSS, shadcn/ui). Úselo para artefactos complejos que requieran gestión de estado, enrutamiento o componentes de shadcn/ui, no para artefactos simples de un solo archivo HTML/JSX. licencia: Términos completos en LICENSE.txt
development