Manejo de Errores de Python en Axe DevTools para Web
Explica cómo funciona el manejo de errores en Axe DevTools para Web con Python
Cómo solucionar errores causados por Axe DevTools Python 4.3
La versión 4.3.0 y superiores de las integraciones de Axe DevTools utilizan una nueva técnica cuando se llama a Axe.analyze(), la cual abre una nueva ventana al final de una ejecución. Muchos de los problemas esbozados en este documento abordan problemas comunes con esta técnica y sus posibles soluciones.
Tener un controlador desactualizado
Un problema común es tener un controlador desactualizado. Para solucionar este problema, asegúrese de que su instalación local de geckodriver o chromedriver esté actualizada.
Un mensaje de error de ejemplo para este problema incluirá un mensaje sobre switchToWindow.
Ejemplo:
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedTener bloqueadores de ventanas emergentes habilitados
Los bloqueadores de ventanas emergentes nos impiden abrir la nueva ventana al llamar a Axe.analyze(). La configuración predeterminada de la mayoría de las bibliotecas de pruebas de automatización debería permitir ventanas emergentes. Asegúrese de no habilitar bloqueadores de ventanas emergentes de manera explícita, lo que podría causar un problema al ejecutar las pruebas.
Axe.set_legacy_mode()
Si no puede ejecutar la nueva técnica de Axe.analyze() sin errores, axe proporciona un nuevo método encadenable para ejecutar la versión anterior de Axe.analyze(). Al usar este método, axe excluye problemas de accesibilidad que pueden ocurrir en marcos de dominio cruzado e iframes.
Axe.set_legacy_mode() está obsoleto y será eliminado en la versión 5.0. Informe cualquier error que pueda tener al ejecutar Axe.analyze() para que puedan ser solucionados antes de que se elimine la versión anterior.
Ejemplo
from axe_devtools_api import Axe
driver = ... # open webdriver and go to your page
results = Axe(driver).set_legacy_mode().analyze()