Manejo de errores de Python en axe DevTools for Web
Explica cómo funciona el manejo de errores en axe DevTools for Web con Python
Cómo solucionar errores provocados por axe DevTools Python 4.3
Las versiones 4.3.0 y superiores de las integraciones de axe DevTools utilizan una nueva técnica al llamar a Axe.analyze()
, que abre una nueva ventana al final de una ejecución. Muchas de las cuestiones descritas 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: undefined
Tener bloqueadores de ventanas emergentes habilitados
Los bloqueadores de ventanas emergentes nos impiden abrir la nueva ventana al llamar Axe.analyze()
. La configuración predeterminada para la mayoría de las bibliotecas de pruebas de automatización debería permitir ventanas emergentes. Asegúrese de no habilitar explícitamente los bloqueadores de ventanas emergentes, ya que pueden causar un problema al ejecutar las pruebas.
Axe.set_legacy_mode()
Si no puede ejecutar la nueva Axe.analyze()
técnica sin errores, axe proporciona un nuevo método encadenable para ejecutar la versión heredada de Axe.analyze()
. Al utilizar este método, axe excluye los problemas de accesibilidad que pueden ocurrir en marcos e iframes de dominio cruzado.
Axe.set_legacy_mode()
está obsoleto y se eliminará en la versión v5.0. Informe cualquier error que pueda tener durante la ejecución de Axe.analyze()
para que puedan solucionarse antes de que se elimine la versión heredada.
Ejemplo
from axe_devtools_api import Axe
driver = ... # open webdriver and go to your page
results = Axe(driver).set_legacy_mode().analyze()