Resolución de problemas de Java
Solución de errores comunes encontrados al usar Axe DevTools para Web en Java
Cómo solucionar errores causados por Axe DevTools Java 4.3 y versiones posteriores. Para obtener información sobre la resolución de problemas de la integración con Java Playwright, consulte Resolución de problemas de Java Playwright.
La versión 4.3.0 y superiores de las integraciones de Axe DevTools utilizan una nueva técnica al llamar a AxeSelenium.run, que abre una nueva ventana al final de una ejecución. Muchos de los problemas descritos 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 ejemplo para este problema incluirá un mensaje acerca de switchToWindow.
Por ejemplo, vea lo siguiente:
(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 AxeSelenium::run. La configuración predeterminada de la mayoría de las bibliotecas de pruebas automatizadas debería permitir ventanas emergentes. Asegúrese de no habilitar explícitamente los bloqueadores de ventanas emergentes, ya que podrían causar un problema al ejecutar las pruebas.
AxeBuilder::setLegacyMode(boolean legacy)
Si por alguna razón no puede ejecutar la nueva técnica de AxeSelenium::run sin errores, axe ofrece un nuevo método encadenable que le permite ejecutar la versión anterior de AxeSelenium::run. Al usar este método, axe excluye problemas de accesibilidad que pueden ocurrir en marcos y iframes de dominio cruzado.
AxeBuilder::setLegacyMode está obsoleto y se eliminará en la versión 5.0. Informe cualquier error que pueda tener al ejecutar AxeSelenium::run para que puedan ser corregidos antes de que se elimine la versión anterior.
Ejemplo
import com.deque.html.axedevtools.selenium.AxeSelenium;
import com.deque.html.axedevtools.selenium.AxeDriver;
import com.deque.html.axecore.selenium.AxeBuilder;
public class Main {
public static void main(String[] args) {
var webDriver = ...; // open wbdriver and go to your test page
var axeDriver = new AxeDriver(webDriver);
var results = new AxeSelenium(new AxeBuilder().setLegacyMode())
.run(axeDriver);
}
}