Dépannage Java

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Résolution des erreurs courantes rencontrées lors de l'utilisation de Axe DevTools pour le Web avec Java

Not for use with personal data

Comment contourner les erreurs causées par Axe DevTools Java 4.3 et ultérieures. Pour obtenir des informations sur le dépannage de l'intégration Java Playwright, voir Dépannage Java Playwright.

À partir de la version 4.3.0, les intégrations de Axe DevTools utilisent une nouvelle technique lors de l'appel de AxeSelenium.run qui ouvre une nouvelle fenêtre à la fin d'un cycle. De nombreux problèmes décrits dans ce document traitent des problèmes courants liés à cette technique et de leurs solutions potentielles.

Avoir un pilote obsolète

Un problème courant est d'avoir un pilote obsolète. Pour résoudre ce problème, assurez-vous que votre installation locale de geckodriver ou chromedriver est à jour.

Un message d'erreur typique pour ce problème comprendra un message concernant switchToWindow.

Par exemple, voir ce qui suit :

(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefined

Avoir des bloqueurs de fenêtres contextuelles activés

Les bloqueurs de fenêtres contextuelles nous empêchent d'ouvrir la nouvelle fenêtre lors de l'appel de AxeSelenium::run. La configuration par défaut de la plupart des bibliothèques de tests d'automatisation devrait permettre les fenêtres contextuelles. Veuillez vous assurer de ne pas activer explicitement les bloqueurs de fenêtres contextuelles, car cela pourrait entraîner un problème lors de l'exécution des tests.

AxeBuilder::setLegacyMode(boolean legacy)

Si, pour une raison quelconque, vous ne parvenez pas à exécuter la nouvelle technique AxeSelenium::run sans erreurs, axe propose une nouvelle méthode chaînable qui vous permet d'exécuter la version héritée de AxeSelenium::run. Lors de l'utilisation de cette méthode, axe exclut les problèmes d'accessibilité qui pourraient survenir dans les frames et iframes interdomaines.

note

AxeBuilder::setLegacyMode est obsolète et sera supprimé dans la version 5.0. Veuillez signaler toute erreur que vous pourriez rencontrer lors de l'exécution de AxeSelenium::run afin qu'elles puissent être corrigées avant la suppression de la version héritée.

Exemple

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);
    }
}