Resolución de problemas de Java
Cómo sortear errores causados por axe DevTools Java 4.3 y versiones posteriores. Para obtener información sobre cómo solucionar problemas de integración con Java Playwright, consulte Solución de problemas de Java Playwright.
Las versiones 4.3.0 y superiores de las integraciones de DevTools de axe utilizan una nueva técnica al llamar AxeSelenium.run
que abre una nueva ventana al final de una corrida. 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
Por ejemplo, vea lo siguiente:
(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 cuando invocamos AxeSelenium::run
. 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 que pueden causar un problema al ejecutar las pruebas.
AxeBuilder::setLegacyMode(boolean legacy)
Si por alguna razón no puede ejecutar la nueva AxeSelenium::run
técnica sin errores, axe proporciona un nuevo método encadenable que le permite ejecutar la AxeSelenium::run
versión heredada. Al utilizar este método, axe excluye los problemas de accesibilidad que pueden ocurrir en marcos e iframes entre dominios.
AxeBuilder::setLegacyMode
está obsoleto y se eliminará en la versión v5.0. Informe cualquier error que pueda tener durante la ejecución AxeSelenium::run
para que puedan solucionarse antes de que se elimine la versión heredada.
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);
}
}