Dépannage Java
Comment contourner les erreurs causées par axe DevTools Java 4.3 et versions ultérieures. Pour plus d'informations sur le dépannage de l'intégration de Java Playwright, consultez Dépannage de Java Playwright.
La version 4.3.0 et supérieure des intégrations axe DevTools utilise une nouvelle technique lors de l'appel AxeSelenium.run
qui ouvre une nouvelle fenêtre à la fin d'une exécution. La plupart des points décrits dans ce document abordent les problèmes courants liés à cette technique et 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 exemple de message d’erreur pour ce problème inclura 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 les bloqueurs de pop-up activés
Les bloqueurs de popups 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 doit autoriser les fenêtres contextuelles. Assurez-vous de ne pas activer explicitement les bloqueurs de fenêtres contextuelles, ce qui peut entraîner un problème lors de l'exécution des tests.
AxeBuilder::setLegacyMode(boolean legacy)
Si pour une raison quelconque vous ne pouvez pas exécuter la nouvelle AxeSelenium::run
technique sans erreurs, axe fournit une nouvelle méthode chaînable qui vous permet d'exécuter la version legacy de AxeSelenium::run
. Lorsque vous utilisez cette méthode, axe exclut les problèmes d'accessibilité qui peuvent survenir dans les cadres et les iframes inter-domaines.
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 AxeSelenium::run
afin qu'elles puissent être corrigées avant la suppression de l'ancienne version.
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);
}
}