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
creative
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
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
XLSX
Anthropic
Creación, edición y análisis integral de hojas de cálculo con soporte para fórmulas, formato, análisis de datos y visualización. Cuando Claude necesita trabajar con hojas de cálculo (.xlsx, .xlsm, .csv, .tsv, etc.) para: (1) Crear nuevas hojas de cálculo con fórmulas y formato, (2) Leer o analizar datos, (3) Modificar hojas de cálculo existentes preservando fórmulas, (4) Análisis de datos y visualización en hojas de cálculo, o (5) Recalcular fórmulas licencia: Propietaria. LICENSE.txt contiene los términos completos
document
Skill Creator
Anthropic
Guía para crear skills efectivas. Esta skill debe usarse cuando los usuarios quieran crear una nueva skill (o actualizar una existente) que extienda las capacidades de Claude con conocimiento especializado, flujos de trabajo o integraciones de herramientas. licencia: Términos completos en LICENSE.txt
Slack Gif Creator
Anthropic
Kit de herramientas para crear GIFs animados optimizados para Slack, con validadores de restricciones de tamaño y primitivas de animación componibles. Esta habilidad se aplica cuando los usuarios solicitan GIFs animados o animaciones de emojis para Slack a partir de descripciones como "hazme un GIF para Slack de X haciendo Y". licencia: Términos completos en LICENSE.txt
creative
Theme Factory
Anthropic
Kit de herramientas para estilizar artefactos con un tema. Estos artefactos pueden ser diapositivas, documentos, informes, páginas de aterrizaje HTML, etc. Hay 10 temas predefinidos con colores/fuentes que puedes aplicar a cualquier artefacto que se haya creado, o puedes generar un nuevo tema sobre la marcha. licencia: Términos completos en LICENSE.txt
creative
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
creative