axe-devtools-unittest API-Referenz
Dieses Paket bietet Hilfsbehauptungen, die unittest erweitern, um die Integration mit axe DevTools zu ermöglichen.
Verwendung
Stellen Sie sicher, dass die Klasse, die erweitert, unittest.TestCase
auch erweitert AxeAssertions
class MyTests(unittest.TestCase, AxeAssertions):
...
Bietet zwei Assertions:
assertIsAxeClean(results)
Nimmt eine Reihe von axe-Ergebnissen und stellt sicher, dass keine Verstöße vorliegen. Wirft ein AssertionError
wenn es
Es gibt Verstöße.
assertNoIncomplete(results)
Nimmt einen Satz von axe-Ergebnissen und stellt sicher, dass keine unvollständigen Prüfungen vorhanden sind. Unvollständige Kontrollen sind es Diejenigen, die weder endgültig bestanden noch durchgefallen sind. Sie sind so gekennzeichnet, um anzuzeigen, dass eine manuelle Überprüfung ist erforderlich.
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()