Classe AxeWatcherController
Contrôlez quand et comment l'analyse d'accessibilité s'exécute dans vos tests Java Selenium et Playwright avec Axe Watcher
La classe AxeWatcherController vous offre un contrôle précis sur le moment et la manière dont Axe Watcher effectue l'analyse d'accessibilité pendant vos tests Selenium. (Pour Playwright, utilisez AxeWatcherPlaywrightController, qui fournit la même API.) Elle propose des méthodes pour démarrer, arrêter, analyser et appliquer les résultats des tests, vous permettant de personnaliser le processus de test en fonction de vos besoins spécifiques.
Lors de l'exécution de tests automatisés, Axe Watcher peut fonctionner en deux modes :
- Mode automatique (par défaut) : Analyse automatiquement chaque page visitée par votre suite de tests
- Mode manuel : Vous donne le contrôle sur les pages et les états analysés
Le mode AxeWatcherController est particulièrement utile lorsque vous souhaitez exclure certaines pages de l'analyse ou vous concentrer sur des états de page spécifiques.
Accéder au contrôleur
Vous ne créez pas d'instance de AxeWatcherController directement. Accédez-y plutôt via l'instance WebDriver enveloppée :
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
AxeWatcherController controller = ((AxeWatcherDriver) driver).axeWatcher();Méthodes
setTestContext(String testFilePath, List<String> testLocation)
Enregistre quel test est actuellement exécuté afin que les violations d'accessibilité qu'il produit puissent lui être attribuées dans l'Axe Developer Hub. Appelez cette méthode avant que le test ne déclenche une analyse, généralement dans un hook @BeforeEach.
Passez null, null pour effacer un contexte précédemment défini.
Paramètres :
testFilePath- Chemin vers le fichier source de test, ounullsi inconnu. Les chemins absolus sont rendus relatifs au répertoire personnel de l'utilisateur.testLocation- L'emplacement du test dans le fichier (par exemple, le nom de la classe et de la méthode, ou une chaîne de titredescribe/it), ounull.
Renvoie :
AxeWatcherController- L'instance actuelle pour l'enchaînement des méthodes
Exemple :
@BeforeEach
public void setUp() {
((AxeWatcherDriver) driver).axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);
}Voir Attribuer les violations aux tests pour plus d'informations.
stop()
Arrête l'analyse automatique des pages par Axe Watcher. Après avoir appelé cette méthode, Axe Watcher n'analysera plus les pages automatiquement jusqu'à ce que vous appeliez start().
Renvoie :
AxeWatcherController- L'instance actuelle pour l'enchaînement des méthodes
Exemple :
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
((AxeWatcherDriver) driver).axeWatcher().stop();
// These pages won't be analyzed automatically
driver.get("https://example.com/login");
driver.findElement(By.id("username")).sendKeys("testuser");
driver.findElement(By.id("password")).sendKeys("password");
driver.findElement(By.id("submit")).click();start()
Reprend l'analyse automatique des pages par Axe Watcher après qu'elle a été arrêtée. Cela réactivera l'analyse automatique des pages pendant que votre test interagit avec l'application.
Renvoie :
AxeWatcherController- L'instance actuelle pour l'enchaînement des méthodes
Exemple :
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
// Disable automatic analysis for login process
((AxeWatcherDriver) driver).axeWatcher().stop();
driver.get("https://example.com/login");
driver.findElement(By.id("login-button")).click();
// Re-enable automatic analysis for the main application
((AxeWatcherDriver) driver).axeWatcher().start();
// These pages will be automatically analyzed
driver.findElement(By.id("dashboard-link")).click();
driver.findElement(By.id("settings-button")).click();analyze()
Déclenche une analyse d'accessibilité manuelle de la page courante. Cette méthode peut être appelée explicitement pour forcer une analyse d'accessibilité sur l'état de la page actuelle, qu'une analyse automatique soit activée ou désactivée.
Renvoie :
AxeWatcherController- L'instance actuelle pour l'enchaînement des méthodes
Exemple :
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
// Navigate to a page
driver.get("https://example.com");
// Open a modal dialog
driver.findElement(By.id("open-modal-button")).click();
// Explicitly analyze the page with the modal open
((AxeWatcherDriver) driver).axeWatcher().analyze();flush()
Vide les résultats de l'analyse d'accessibilité vers l'Axe Developer Hub. Cette méthode devrait être appelée à la fin de chaque test (typiquement dans une méthode @AfterEach ou équivalente) pour s'assurer que tous les résultats sont envoyés à l'Axe Developer Hub.
Renvoie :
AxeWatcherController- L'instance actuelle pour l'enchaînement des méthodes
Exemple :
@AfterEach
public void tearDown() {
if (driver instanceof AxeWatcherDriver) {
((AxeWatcherDriver) driver).axeWatcher().flush();
}
driver.quit();
}Enchaînement des méthodes
Toutes les méthodes dans AxeWatcherController supportent l'enchaînement des méthodes, vous permettant de combiner plusieurs opérations :
((AxeWatcherDriver) driver).axeWatcher()
.stop() // Stop automatic analysis
.analyze() // Perform a manual analysis
.start() // Resume automatic analysis
.flush(); // Flush results to axe Developer HubNotes importantes
-
iFrames : Les méthodes du contrôleur comme
analyze(),start(), etstop()ne fonctionneront pas lorsqu'elles sont appelées depuis un iframe. Assurez-vous toujours d'être dans le cadre de niveau supérieur lorsque vous utilisez ces méthodes. -
Protocoles de page : Les méthodes du contrôleur ne fonctionneront pas sur des pages avec d'autres protocoles que
http:,https:, oufile:. -
Résultats du vidage : Appelez toujours
flush()à la fin de vos tests pour vous assurer que tous les résultats d'accessibilité sont envoyés à l'Axe Developer Hub. -
Conscience de l'état : Le contrôleur suit son état, donc appeler
stop()lorsqu'il est déjà arrêté oustart()lorsqu'il est déjà démarré n'a aucun effet.
