Uso con WebdriverIO
WebdriverIO es un framework de automatización de pruebas de Node.js construido sobre el protocolo WebDriver, que soporta tanto pruebas end-to-end como pruebas de componentes. surea11y se integra mediante la integración (binding) @surea11y/webdriverio.
$ npm install @surea11y/webdriverio webdriverio
WebdriverIO v9 gestiona automáticamente un chromedriver local la primera vez que lanza Chrome: una instalación limpia basta para lanzar un Chrome headless real por sí sola.
const { remote } = require('webdriverio');const { A11yCoreBuilder } = require('@surea11y/webdriverio');const browser = await remote({capabilities: {browserName: 'chrome','wdio:enforceWebDriverClassic': true, // recommended -- see below'goog:chromeOptions': { args: ['--headless=new'] }}});await browser.url('https://example.com/');const results = await new A11yCoreBuilder({ browser }).include('#main') // optional -- call multiple times for multi-region scans.exclude('.cookie-banner') // optional.withTags(['wcag2a', 'wcag2aa']).disableRules(['meta-refresh-no-exceptions']).analyze();console.log(results.checksResults.filter(r => r.outcome === 'fail'));await browser.deleteSession();
Fuerza el WebDriver clásico, no BiDi, para esta carga de trabajo. WebdriverIO v9 usa el protocolo BiDi por defecto; una sesión de larga duración que emite muchas llamadas a browser.execute() (exactamente lo que hace un análisis) mostró una degradación grave del rendimiento con BiDi durante las pruebas: la latencia por análisis pasó de ~2s a varios minutos. Forzando el WebDriver clásico con 'wdio:enforceWebDriverClassic': true, como se muestra arriba, se obtuvo un ~150ms estable por análisis.
Consulta también un ejemplo ejecutable en el propio repositorio del paquete.
Siguiente: elige qué reglas se ejecutan, integra el análisis en CI y consulta la estructura completa del resultado.