Référence de l'API axe-devtools-unittest

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éférence de l'API pour le package axe-devtools-unittest fournissant des assertions d'accessibilité pour unittest

Not for use with personal data

Ce package fournit des assertions d'assistance qui étendent unittest pour s'intégrer avec Axe DevTools.

axe_devtools_unittest.AxeAssertions

Une classe mixin qui ajoute des assertions d'accessibilité à unittest.TestCase. La classe de test doit étendre à la fois unittest.TestCase et AxeAssertions.

class MyTests(unittest.TestCase, AxeAssertions):
    ...

assertIsAxeClean(results)

Vérifiez qu'aucune violation n'a été trouvée par axe-core.

results: L'objet de résultats retourné par Axe.analyze().

Lève une exception AssertionError s'il y a des violations. Le message d'erreur inclut un rapport de violations.

assertNoIncomplete(results)

Assurez-vous qu'axe-core a terminé toutes les vérifications qu'il a tentées.

Les vérifications incomplètes sont celles qui n'ont ni réussi ni échoué de manière définitive et nécessitent un examen manuel.

results: L'objet de résultats retourné par Axe.analyze().

Lève une exception AssertionError si des vérifications sont incomplètes.

assertInapplicable(results, *rules)

Assurez-vous que les règles spécifiées ont produit des résultats inapplicables.

results: L'objet de résultats retourné par Axe.analyze().

rules: Un ou plusieurs identifiants de règles à vérifier pour le statut inapplicable.

Lève une exception AssertionError si l'une des règles spécifiées n'est pas dans les résultats inapplicables.

Exemple

L'exemple suivant peut être exécuté directement avec Python, en supposant que axe-devtools-api, axe-devtools-selenium, et axe-devtools-unittest sont installés.

import unittest
from os import path
from axe_devtools_api import Axe
from axe_devtools_selenium import AxeDriver
from axe_devtools_unittest import AxeAssertions
from selenium import webdriver

class TestAxe(unittest.TestCase, AxeAssertions):
    def setUp(self):
        self.page = webdriver.Chrome()
        self.page.get("http://localhost:8000/example-page.html")
        self.axe = Axe(AxeDriver(self.page))

    def test_run_axe(self):
        res = self.axe.analyze()
        assert res.is_axe_clean(), res.violations_report()

    def test_with_rules(self):
        res = self.axe \
            .with_rules("document-title", "label") \
            .with_rules("region") \
            .analyze()
        self.assertNoIncomplete(res)
        self.assertIsAxeClean(res)

    def test_including_within_frame(self):
        res = self.axe \
            .including("#my-frame", "body") \
            .analyze()
        self.assertNoIncomplete(res)
        self.assertIsAxeClean(res)

if __name__ == '__main__':
    unittest.main()