Uso con Selenium
Selenium WebDriver es el estándar histórico para controlar navegadores reales desde cualquier lenguaje: la herramienta de automatización multinavegador más consolidada, usada habitualmente para pruebas end-to-end. surea11y se integra mediante la integración (binding) @surea11y/selenium.
$ npm install @surea11y/selenium selenium-webdriver
selenium-webdriver incluye Selenium Manager, que descarga y gestiona automáticamente la versión correspondiente de ChromeDriver la primera vez que construyes un driver: no hace falta un servidor Selenium aparte ni instalar el driver manualmente (Chrome sí debe estar ya instalado en la máquina).
const { Builder, Browser } = require('selenium-webdriver');const chrome = require('selenium-webdriver/chrome');const { A11yCoreBuilder } = require('@surea11y/selenium');const options = new chrome.Options().addArguments('--headless=new');const driver = await new Builder().forBrowser(Browser.CHROME).setChromeOptions(options).build();await driver.get('https://example.com/');const results = await new A11yCoreBuilder({ driver }).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 driver.quit();
El builder recibe { driver } (un WebDriver de Selenium), mientras que Puppeteer/Playwright reciben { page }: esa es la única diferencia de construcción. Todo lo demás es idéntico.
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.