Cómo solucionar problemas

Link to Cómo solucionar problemas copied to clipboard

Cómo solucionar problemas comunes que ocurren al usar Axe Developer Hub

Free Trial
Not for use with personal data

@axe-core/watcher solo es compatible con Chrome

Aunque el sitio web axe Developer Hub admite varios navegadores, el paquete @axe-core/watcher solo es compatible con Google Chrome. Si intenta utilizar el navegador Electron de Cypress para realizar pruebas, por ejemplo, recibirá un error. Consulta Requisitos del sistema para obtener más información sobre el software compatible con axe Developer Hub y @axe-core/watcher.

Ejecutores de pruebas paralelos

Si su conjunto de pruebas utiliza varios ejecutores de pruebas que se ejecutan en paralelo, debe asegurarse de que cada ejecutor de pruebas utilice el mismo buildID diferente de null. De lo contrario, los resultados de cada ejecutor de pruebas sobrescribirán los resultados de otros ejecutores de pruebas para el mismo SHA de confirmación.

Normalmente, establece buildID en AxeConfiguration de tu conjunto de pruebas. Para obtener más información sobre el uso de ejecutores de pruebas paralelos con diferentes plataformas CI/CD, consulte buildID en la Referencia de API.

Los errores de accesibilidad duplicados o los nuevos problemas se contabilizan incorrectamente

Si su sitio web utiliza identificadores dinámicos o nombres de clase que cambian cada vez que se actualiza la página, es probable que vea errores de accesibilidad duplicados, en particular problemas marcados como nuevos cuando ejecuciones de pruebas anteriores muestran el mismo problema en el mismo elemento. (Axe Developer Hub utiliza IDs y clases para identificar el mismo elemento entre ejecuciones de prueba). Para resolver este problema, debe establecer la propiedad ancestry en el objeto runOptions en su configuración a true. El siguiente ejemplo muestra cómo establecer la opción en su configuración:

axe: {
  runOptions: {
    ancestry: true
  }
}

Consulte runOptions para obtener más información.

Versión antigua de @axe-core/watcher

Si está utilizando la versión 3.18.0 o anterior de @axe-core/watcher, recibirá este mensaje de advertencia:

Captura de pantalla que muestra el mensaje que aparece cuando el paquete @axe-core/watcher es demasiado antiguo para admitir configuraciones globales

Axe Developer Hub ahora se adhiere a las configuraciones definidas en axe Configuration, y las ejecuciones de pruebas creadas por versiones de @axe-core/watcher versión 3.18.0 o anteriores generan sesiones que desconocían las configuraciones globales en axe Configuration. Debe actualizar su paquete @axe-core/watcher y volver a ejecutar sus pruebas para crear sesiones que sigan la configuración de axe de su empresa. Consulte Uso de configuraciones globales.

Tiempo de espera del método del controlador

Recibirá un mensaje similar al siguiente si las llamadas a los métodos del controlador (definidos en la Controller clase base abstracta como analyze(), flush(), start() y stop()) o a los comandos personalizados de Cypress se agotan:

Error: Watcher could not send results to the server. To resolve this problem, adjust your `timeout.flush` property within your configuration or see https://docs.deque.com/developer-hub/dh-troubleshooting for more troubleshooting.

El método Controller especificado (aquí, el método flush()) requirió más tiempo que el predeterminado para completarse y se agotó el tiempo de espera. Puede cambiar la hora predeterminada agregando un objeto a su configuración: timeout

axe: {
  timeout: {
    flush: 10000
  }
}
important

Estos valores de tiempo de espera son independientes del marco de prueba que esté utilizando y es posible que también deba aumentar los valores de tiempo de espera para ese marco.

Consulte Timeouts Interface y timeouts para obtener más información. Los valores de tiempo de espera predeterminados se muestran en la tabla debajo de la Timeouts Interface.

Resultados No Aparecen

Si ha ejecutado su conjunto de pruebas y no aparecen resultados en axe Developer Hub para un determinado proyecto, la causa podría encontrarse entre los motivos que se indican en las siguientes secciones:

No Configurando axe Watcher

Su conjunto de pruebas modificado debe llamar a la función de configuración adecuada para su marco de pruebas antes de ejecutar sus pruebas. Si no configura axe Watcher correctamente, puede que le resulte difícil identificar este problema. Por ejemplo, es posible que vea un problema como alguno de los siguientes:

  1. Su conjunto de pruebas podría fallar con un error de promesa no devuelta.
  2. Su conjunto de pruebas podría fallar silenciosamente.
  3. Su conjunto de pruebas podría expirar.

Consulte las [instrucciones] de configuración(dh-watcher-intro#instructions-for-modifying-your-test-suite) para obtener ejemplos de configuración para su idioma y el marco de prueba del navegador.

Resultados sin vaciado

Debe llamar a la función flush() (o el comando personalizado axeWatcherFlush() en Cypress) para enviar los resultados recopilados a los servidores de Deque para que puedan presentarse en el sitio web de axe Developer Hub. Por lo general, se llama a la función flush() en el gancho de limpieza de su plataforma de automatización.

Por ejemplo, en el archivo support/e2e.js en Cypress agregue la llamada a afterEach():

// Flush axe-watcher results after each test.
afterEach(() => {
  cy.axeWatcherFlush()
})

Usando la opción --incognito

No puede usar la opción de línea de comandos --incognito con Chrome; de lo contrario, tus pruebas fallarán silenciosamente. Si está utilizando el modo incógnito para evitar escribir archivos almacenados en caché en el disco (los archivos almacenados en caché se guardan en la memoria solo en el modo incógnito), utilice en su lugar los métodos de almacenamiento en caché de su conjunto de pruebas.

No se configura la variable de entorno requerida

Los ejemplos en Axe Developer Hub repositorio de ejemplos en GitHub usan una variable de entorno para configurar la clave API, API_KEY.

Puede configurarlo en el entorno o especificarlo en la línea de comando al ejecutar pruebas.

La prueba se ejecuta demasiado rápido

Es posible que sus pruebas se ejecuten demasiado rápido, descargando la página y liberando sus recursos antes de que Watcher pueda analizarla. Para solucionar este problema, puedes agregar un retraso al final de la prueba para tener tiempo de analizar la página.

Por ejemplo, en Cypress, puedes agregar un retraso de 10 segundos (10.000 milisegundos) con el método cy.wait():

describe('Visitor', () => {
  it('should visit example.com', () => {
    cy.visit('https://www.example.com')
    cy.wait(10000);  })
})

Clave API faltante o inválida

Una clave API no válida o faltante aparece como un archivo de configuración no válido en Cypress. El seguimiento de la pila revelará si la clave API no es válida o falta. Una ** clave faltante ** da como resultado lo siguiente:

AssertionError [ERR_ASSERTION]: API key is required
    at validateApiKey ...

(Se eliminaron muchas líneas del seguimiento de la pila para abreviar).

Una clave inválida da como resultado el siguiente seguimiento de pila (abreviado):

Error: Server responded to https://axe.deque.com/api/api-keys/test/validate/axe-devtools-watcher with status code 404:
{"error":"Invalid API key"}
    at Response.getBody
...

Ayuda

Si no puede resolver su problema, envíenos un correo electrónico para que podamos ayudarlo.(mailto:helpdesk@deque.com)