axe-devtools-unittest API-Referenz
API-Referenz für das axe-devtools-unittest-Paket, das Barrierefreiheits-Assertions für Unittest bereitstellt
Dieses Paket bietet Hilfe-Assertions, die unittest zur Integration mit Axe DevTools erweitern.
axe_devtools_unittest.AxeAssertions
Eine Mixin-Klasse, die Barrierefreiheits-Assertions zu unittest.TestCasehinzufügt. Die Testklasse muss sowohl unittest.TestCase als auch AxeAssertionserweitern.
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.
Löst AssertionError aus, wenn Verstöße vorliegen. Die Fehlermeldung enthält einen Verstöße-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.
Löst AssertionError aus, wenn eine der Überprüfungen unvollständig ist.
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, die auf nicht anwendbaren Status überprüft werden sollen.
Löst AssertionError aus, wenn keine der angegebenen Regeln in den nicht anwendbaren Ergebnissen enthalten ist.
Beispiel
Das folgende Beispiel kann direkt mit Python ausgeführt werden, vorausgesetzt, axe-devtools-api, axe-devtools-seleniumund 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()