axe-devtools-unittest API-Referenz
API-Referenz für das axe-devtools-unittest-Paket, das Barrierefreiheits-Assertions für Unittest bereitstellt
Dieses Paket bietet Hilfsbehauptungen, die unittest erweitern, um sich in Axe DevTools zu integrieren.
axe_devtools_unittest.AxeAssertions
Eine Mixin-Klasse, die Barrierefreiheitsbehauptungen zu unittest.TestCase hinzufügt. Die Testklasse muss sowohl unittest.TestCase als auch AxeAssertions erweitern.
class MyTests(unittest.TestCase, AxeAssertions):
...assertIsAxeClean(results)
Stellen Sie sicher, dass axe-core keine Verstöße gefunden hat.
results: Das von Axe.analyze() zurückgegebene Ergebnisobjekt.
Wirft AssertionError, wenn es Verstöße gibt. Die Fehlermeldung enthält einen Verstoßbericht.
assertNoIncomplete(results)
Stellen Sie sicher, dass axe-core alle versuchten Überprüfungen abgeschlossen hat.
Unvollständige Überprüfungen sind solche, die weder eindeutig bestanden noch fehlgeschlagen sind und eine manuelle Überprüfung erfordern.
results: Das von Axe.analyze() zurückgegebene Ergebnisobjekt.
Wirft AssertionError, wenn irgendwelche Prüfungen unvollständig sind.
assertInapplicable(results, *rules)
Stellen Sie sicher, dass die angegebenen Regeln zu nicht anwendbaren Ergebnissen führten.
results: Das von Axe.analyze() zurückgegebene Ergebnisobjekt.
rules: Eine oder mehrere Regel-IDs, um auf nicht anwendbaren Status zu prüfen.
Wirft AssertionError, wenn eine der angegebenen Regeln nicht in den nicht anwendbaren Ergebnissen enthalten ist.
Beispiel
Das folgende Beispiel kann direkt mit Python ausgeführt werden, vorausgesetzt, axe-devtools-api, axe-devtools-selenium und axe-devtools-unittest sind installiert.
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()