API-Referenz für Selenium
API-Referenz für AxeSelenium, AxeConfiguration und die zugehörigen Klassen für Selektoren, Berichte und Ergebnisse in Axe DevTools für Web Java
Dieses Dokument ist eine Referenz für die AxeSelenium und AxeConfiguration Klassen sowie für die Selektoren, Berichte und Ergebnistypen, die sie verwenden. Die AxeSelenium Klasse sollte die meisten Anwendungsfälle abdecken und AxeConfiguration sollte den Rest abdecken.
Die Beispiele auf dieser Seite gehen davon aus, dass webDriver Ihr Selenium WebDriver ist und driver ein AxeDriver ist, das es umschließt.
com.deque.html.axedevtools.selenium.AxeSelenium
Konfiguriert einen Barrierefreiheitsscan und führt ihn aus. Jede Konfigurationsmethode gibt die gleiche AxeSelenium Instanz zurück, sodass Aufrufe verkettet werden können, und run(AxeDriver) führt den Scan durch.
Results results = new AxeSelenium()
.include(".my-css-class")
.skipping("aria-required-parent")
.run(driver);AxeSelenium()
Erstellt einen AxeSelenium-Scan, der die globalen AxeConfiguration-Einstellungen nutzt, wie z.B. das Regelwerk, die Audit-Suite und das Ausgabeverzeichnis für Berichte. Verwenden Sie diesen Konstruktor, es sei denn, Sie müssen das zugrunde liegende AxeBuilder anpassen.
public AxeSelenium();Beispiel
Results results = new AxeSelenium().run(driver);AxeSelenium(AxeBuilder)
Erstellt einen AxeSelenium-Scan, der durch die von Ihnen bereitgestellten AxeBuilder läuft, aus der axe-core Selenium-Integration (com.deque.html.axecore.selenium.AxeBuilder). Verwenden Sie es, um AxeBuilder Optionen zu erreichen, die AxeSelenium nicht offenlegt, wie z.B. den Legacy-Modus. Die globalen AxeConfiguration-Einstellungen gelten weiterhin.
public AxeSelenium(AxeBuilder axeBuilder);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
axeBuilder |
AxeBuilder |
Der Builder, der verwendet wird, um axe-core in die Seite zu injizieren und auszuführen. |
Beispiel
import com.deque.html.axecore.selenium.AxeBuilder;
Results results = new AxeSelenium(new AxeBuilder().setLegacyMode())
.run(driver);run(AxeDriver)
Scannt die Seite, die page aktuell anzeigt, unter Verwendung aller auf diesem AxeSelenium konfigurierten Optionen und gibt die Ergebnisse zurück. Ignorierte Verstöße (siehe AxeSelenium.ignoring(String, String)) werden aus den Ergebnissen entfernt und, falls logResults aufgerufen wurde, werden die Berichtsdateien geschrieben, bevor run zurückkehrt.
Wenn axe-core beim Scannen einen Fehler meldet, wirft run diesen, anstatt Ergebnisse zurückzugeben.
public Results run(AxeDriver page);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
page |
AxeDriver |
Die zu scannende Seite. |
Rückgaben
Ein Results-Objekt (com.deque.html.axecore.results.Results), das die Verstöße, Erfolge, unvollständigen und nicht anwendbaren Ergebnisse enthält.
Wirft
AxeRuntimeException(com.deque.html.axecore.results.AxeRuntimeException), wenn axe-core einen Fehler anstelle von Ergebnissen zurückgibt.RuntimeException, wenn der Scan selbst fehlschlägt, zum Beispiel wennaxe.finishRunfehlschlägt oder der Treiber nicht zwischen Fenstern wechseln kann.
Beispiel
webDriver.get("https://example.com");
Results results = new AxeSelenium().run(driver);
if (!results.violationFree()) {
System.out.println(results.getViolations().size() + " rules have violations");
}runCommand()
Gibt das generische axe.run-Skript zurück, das AxeSelenium im Browser im Legacy-Modus ausführt. Das Skript enthält nicht den Kontext oder die Optionen dieses Scans, und mit axe-core 4.3 oder höher (der Standard, nicht im Legacy-Modus) werden Scans durch eine andere Reihe von Aufrufen ausgeführt. AxeSelenium übergibt dieses Skript an den Reporter, daher ist es hauptsächlich nützlich, wenn Sie Ihren eigenen Berichtstext mit AxeDevtoolsReporter.generateReport erstellen.
public String runCommand();Rückgaben
Das Skript, als ein String.
include(String)
Begrenzt den Scan auf die Elemente, die durch einen CSS-Selektor und deren Nachkommen übereinstimmen. Jeder Aufruf fügt dem Scan einen zusätzlichen Bereich hinzu, sodass Sie zum Testen mehrerer nicht zusammenhängender Teile der Seite include jeweils einmal aufrufen. Ein einzelner, komma-getrennter Selektor (".sidebar, .some-class") funktioniert ebenfalls, da er unverändert an den Browser übergeben wird.
public AxeSelenium include(String cssSelector);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
cssSelector |
String |
Jeder gültige CSS-Selektor. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Test .sidebar and .some-class, which are both in the top-level document
Results results = new AxeSelenium()
.include(".sidebar")
.include(".some-class")
.run(driver);include(List\<String>)
Begrenzt den Scan auf ein Element innerhalb eines oder mehrerer verschachtelter iFrames. Jede Zeichenkette außer der letzten stimmt mit einer Verschachtelungsebene des iFrames überein; die letzte stimmt mit dem zu testenden Element im innersten iFrame überein. Die Liste beschreibt einen Pfad, nicht mehrere Selektoren.
Da es keine include(String...) Überladung gibt, erzeugt das Übergeben von mehr als einem String an include ebenfalls einen einzelnen iFrame-Selektor anstelle separater Einschlüsse: include("#parent-iframe", "#html") wird zu include(Object...) aufgelöst und bedeutet dasselbe wie das untenstehende Beispiel.
include(FromFrames) drückt dasselbe expliziter aus und ist die empfohlene Form für neue Tests.
public AxeSelenium include(List<String> selector);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
selector |
List\<String> |
Ein CSS-Selektor pro Verschachtelungsebene des iFrames, gefolgt von einem CSS-Selektor für das Element innerhalb des innersten iFrames. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Test #html inside the iframe matched by #parent-iframe
Results results = new AxeSelenium()
.include(Arrays.asList("#parent-iframe", "#html"))
.run(driver);include(FromFrames)
Begrenzt den Scan auf ein Element innerhalb eines oder mehrerer verschachtelter iFrames, unter Verwendung eines expliziten FromFrames-Selektors.
public AxeSelenium include(FromFrames fromFrames);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
fromFrames |
FromFrames |
Jeder Selektor außer dem letzten stimmt mit einer Verschachtelungsebene des iFrames überein; der letzte stimmt mit dem zu testenden Element im innersten iFrame überein. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Test the form inside the #payment-frame iframe
Results results = new AxeSelenium()
.include(new FromFrames("#payment-frame", "form"))
.run(driver);include(FromShadowDom)
Begrenzt den Scan auf ein Element innerhalb eines oder mehrerer verschachtelter Schatten-DOM-Bäume, unter Verwendung eines expliziten FromShadowDom-Selektors.
public AxeSelenium include(FromShadowDom fromShadowDom);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
fromShadowDom |
FromShadowDom |
Jeder Selektor außer dem letzten stimmt mit einem Schatten-Host überein; der letzte stimmt mit dem zu testenden Element innerhalb des innersten Schatten-Roots überein. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Test the #search form inside the shadow root attached to .app-header
Results results = new AxeSelenium()
.include(new FromShadowDom(".app-header", "form#search"))
.run(driver);include(Object)
Begrenzt den Scan mit einem Selektor, der als einzelnes Objekt bereitgestellt wird. Java wählt diese Überladung nur aus, wenn der statische Typ des Arguments keiner der oben genannten Typen ist, wie beispielsweise eine Variable, die als Object deklariert ist. Bevorzugen Sie die typsicheren Überladungen.
public AxeSelenium include(Object selector);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
selector |
Object |
Eine CSS-Selektor-Zeichenfolge, eine Liste von Zeichenfolgen, ein FromFrames-Selektor oder ein FromShadowDom-Selektor. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// The selector's type is chosen at runtime, so it's held as Object
Object scope = useFrame ? new FromFrames("#frame", "main") : "main";
Results results = new AxeSelenium()
.include(scope)
.run(driver);include(Object...)
Begrenzt den Scan mit einem Selektor, der einfache CSS-Selektoren mit FromFrames oder FromShadowDom Selektoren mischt, für Fälle, die die anderen Überladungen nicht ausdrücken können. Alle Argumente zusammen bilden einen einzigen Pfad zu einem Element; sie sind keine separaten Inklusionen.
Diese Überladung wird ausgewählt, wann immer der Aufruf mehr als ein Argument enthält. Das Übergeben eines einzelnen FromFrames oder FromShadowDom wählt stattdessen include(FromFrames) oder include(FromShadowDom) aus.
Um ein iFrame zu erreichen, das innerhalb eines Schatten-Roots lebt, nisten Sie den FromShadowDom-Selektor innerhalb des FromFrames-Selektors. Das Gegenteil kann nicht ausgedrückt werden, da FromShadowDom nur Zeichenfolgen akzeptiert.
public AxeSelenium include(Object... selector);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
selector |
Object... |
Eine gemischte Menge aus CSS-Selektoren und Selektor-Objekten, die einen einzigen Pfad zu dem zu testenden Element bilden. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Test .target inside the shadow root attached to #host, inside the #frame iframe
Results results = new AxeSelenium()
.include("#frame", new FromShadowDom("#host", ".target"))
.run(driver);exclude(String)
Entfernt die Elemente, die durch einen CSS-Selektor und deren Nachkommen übereinstimmen, aus dem Scan. Jeder Aufruf entfernt einen weiteren Bereich, sodass Sie zum Überspringen mehrerer nicht zusammenhängender Teile der Seite exclude jeweils einmal aufrufen. Ausschlüsse gelten zusätzlich zu allen include-Aufrufen, wodurch Sie eine Region testen können, außer einem Teil davon.
public AxeSelenium exclude(String cssSelector);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
cssSelector |
String |
Jeder gültige CSS-Selektor. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Test main, but skip the .cookie-banner and .ad-slot inside it
Results results = new AxeSelenium()
.include("main")
.exclude(".cookie-banner")
.exclude(".ad-slot")
.run(driver);exclude(List\<String>)
Entfernt ein Element innerhalb eines oder mehrerer verschachtelter iFrames aus dem Scan. Jede Zeichenkette außer der letzten stimmt mit einer Verschachtelungsebene des iFrames überein; die letzte stimmt mit dem zu überspringenden Element im innersten iFrame überein. Die Liste beschreibt einen Pfad, nicht mehrere Selektoren.
Da es keine exclude(String...) Überladung gibt, erzeugt das Übergeben von mehr als einem String an exclude ebenfalls einen einzelnen iFrame-Selektor anstelle separater Ausschlüsse: exclude(".iframe1", ".third-party-ad") wird zu exclude(Object...) aufgelöst und bedeutet dasselbe wie das untenstehende Beispiel.
exclude(FromFrames) drückt dasselbe expliziter aus und ist die empfohlene Form für neue Tests.
public AxeSelenium exclude(List<String> selector);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
selector |
List\<String> |
Ein CSS-Selektor pro Verschachtelungsebene des iFrames, gefolgt von einem CSS-Selektor für das Element innerhalb des innersten iFrames. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Skip .third-party-ad inside the iframe matched by .iframe1
Results results = new AxeSelenium()
.exclude(Arrays.asList(".iframe1", ".third-party-ad"))
.run(driver);exclude(FromFrames)
Entfernt ein Element innerhalb eines oder mehrerer verschachtelter iFrames aus dem Scan, unter Verwendung eines expliziten FromFrames-Selektors.
public AxeSelenium exclude(FromFrames fromFrames);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
fromFrames |
FromFrames |
Jeder Selektor außer dem letzten stimmt mit einer Verschachtelungsebene des iFrames überein; der letzte stimmt mit dem zu überspringenden Element im innersten iFrame überein. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Skip the form inside the #payment-frame iframe
Results results = new AxeSelenium()
.exclude(new FromFrames("#payment-frame", "form"))
.run(driver);exclude(FromShadowDom)
Entfernt ein Element innerhalb eines oder mehrerer verschachtelter Schatten-DOM-Bäume aus dem Scan, unter Verwendung eines expliziten FromShadowDom-Selektors.
public AxeSelenium exclude(FromShadowDom fromShadowDom);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
fromShadowDom |
FromShadowDom |
Jeder Selektor außer dem letzten stimmt mit einem Schatten-Host überein; der letzte stimmt mit dem zu überspringenden Element innerhalb des innersten Schatten-Roots überein. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Skip the #search form inside the shadow root attached to .app-header
Results results = new AxeSelenium()
.exclude(new FromShadowDom(".app-header", "form#search"))
.run(driver);exclude(Object)
Entfernt einen Bereich aus dem Scan mit einem Selektor, der als einzelnes Objekt bereitgestellt wird. Java wählt diese Überladung nur aus, wenn der statische Typ des Arguments keiner der oben genannten Typen ist, wie beispielsweise eine Variable, die als Object deklariert ist. Bevorzugen Sie die typsicheren Überladungen.
public AxeSelenium exclude(Object selector);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
selector |
Object |
Eine CSS-Selektor-Zeichenfolge, eine Liste von Zeichenfolgen, ein FromFrames-Selektor oder ein FromShadowDom-Selektor. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// The selector's type is chosen at runtime, so it's held as Object
Object skip = adInFrame ? new FromFrames("#ad-frame", ".ad") : ".ad";
Results results = new AxeSelenium()
.exclude(skip)
.run(driver);exclude(Object...)
Entfernt einen Bereich aus dem Scan mit einem Selektor, der einfache CSS-Selektoren mit FromFrames oder FromShadowDom-Selektoren mischt, für Fälle, die die anderen Überladungen nicht ausdrücken können. Alle Argumente zusammen bilden einen einzigen Pfad zu einem Element; sie sind keine separaten Ausschlüsse.
Diese Überladung wird ausgewählt, wann immer der Aufruf mehr als ein Argument enthält. Das Übergeben eines einzelnen FromFrames oder FromShadowDom wählt stattdessen exclude(FromFrames) oder exclude(FromShadowDom) aus.
Um ein iFrame zu erreichen, das innerhalb eines Schatten-Roots lebt, nisten Sie den FromShadowDom-Selektor innerhalb des FromFrames-Selektors. Das Gegenteil kann nicht ausgedrückt werden, da FromShadowDom nur Zeichenfolgen akzeptiert.
public AxeSelenium exclude(Object... selector);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
selector |
Object... |
Eine gemischte Menge aus CSS-Selektoren und Selektor-Objekten, die einen einzigen Pfad zu dem zu überspringenden Element bilden. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Skip .target inside the shadow root attached to #host, inside the #frame iframe
Results results = new AxeSelenium()
.exclude("#frame", new FromShadowDom("#host", ".target"))
.run(driver);accordingTo(String...)
Führt nur die Regeln aus, die mindestens einen der angegebenen Tags enthalten, wie wcag2a oder best-practice. Verwenden Sie es, um gegen einen Teil eines Standards zu testen, zum Beispiel nur WCAG 2.0 Level A, anstatt gegen ein ganzes Regelwerk.
accordingTo und checkingOnly setzen dieselbe Option, daher hat nur der letzte der beiden Aufrufe eine Wirkung. Ein zweiter accordingTo-Aufruf ersetzt auch die Tags vom ersten, daher sollten Sie alle Tags in einem Aufruf übergeben.
public AxeSelenium accordingTo(String... tags);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
tags |
String... |
Ein oder mehrere axe-core-Tags. Siehe Regelbeschreibungen für die Tags zu jeder Regel. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Run only the WCAG 2.0 Level A and Section 508 rules
Results results = new AxeSelenium()
.accordingTo("wcag2a", "section508")
.run(driver);checkingOnly(String...)
Führt nur die benannten Regeln und keine anderen aus. Verwenden Sie es, um einen Test auf eine oder zwei Regeln zu fokussieren, zum Beispiel während der Behebung eines spezifischen Problems.
checkingOnly und accordingTo setzen dieselbe Option, sodass nur der letzte der beiden Aufrufe wirksam wird. Ein zweiter checkingOnly-Aufruf ersetzt auch die Regeln des ersten, daher sollten alle Regel-IDs in einem Aufruf übergeben werden.
public AxeSelenium checkingOnly(String... rules);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
rules |
String... |
Eine oder mehrere axe-core-Regel-IDs. Siehe Regelbeschreibungen. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Run only the label and color-contrast rules
Results results = new AxeSelenium()
.checkingOnly("label", "color-contrast")
.run(driver);checking(String...)
Schaltet die benannten Regeln zusätzlich zu den bereits durch das Regelset oder durch accordingTo ausgewählten Regeln ein. Verwenden Sie es, um eine Regel hinzuzufügen, die von den ausgewählten Tags oder dem Regelset ausgelassen wurde, wie beispielsweise eine best-practice-Regel.
checking und skipping setzen dieselbe Option, sodass nur der letzte der beiden Aufrufe wirksam wird, und ein zweiter checking-Aufruf ersetzt die Regeln des ersten. Übergeben Sie alle Regel-IDs in einem Aufruf und kombinieren Sie nicht checking mit skipping im selben Scan.
public AxeSelenium checking(String... rules);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
rules |
String... |
Eine oder mehrere axe-core-Regel-IDs. Siehe Regelbeschreibungen. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Run the WCAG 2.0 Level A rules, plus the tabindex best-practice rule
Results results = new AxeSelenium()
.accordingTo("wcag2a")
.checking("tabindex")
.run(driver);skipping(String...)
Schaltet die benannten Regeln aus, während der Rest des ausgewählten Regelsets oder der Tags aktiviert bleibt. Verwenden Sie es, um eine Regel vollständig auszuschalten; um den Verstoß bei einem Element zu ignorieren und die anderen Ergebnisse der Regel zu behalten, verwenden Sie stattdessen ignoring.
skipping und checking setzen dieselbe Option, sodass nur der letzte der beiden Aufrufe wirksam wird, und ein zweiter skipping-Aufruf ersetzt die Regeln des ersten. Übergeben Sie alle Regel-IDs in einem Aufruf und kombinieren Sie nicht skipping mit checking im selben Scan.
public AxeSelenium skipping(String... rules);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
rules |
String... |
Eine oder mehrere axe-core-Regel-IDs. Siehe Regelbeschreibungen. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Run the default ruleset without the color-contrast and image-alt rules
Results results = new AxeSelenium()
.skipping("color-contrast", "image-alt")
.run(driver);forConfig(URL)
Wählt die Audit-Suite (eine JSON-Regelkonfigurationsdatei) mithilfe der URL aus, mit der gescannt werden soll. Dies setzt die globale Audit-Suite auf AxeConfiguration, sodass sie auch für jeden späteren AxeSelenium-Scan gilt, nicht nur für diesen.
Wenn keine Audit-Suite festgelegt ist, verwendet Axe DevTools die Datei, die durch die AXE_RULESET_PATH-Umgebungsvariable benannt ist, oder, wenn diese nicht festgelegt ist, eine config/axe-ruleset.json-Ressource im Klassenpfad.
public AxeSelenium forConfig(URL auditConfigPath);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
auditConfigPath |
URL |
Die URL der Audit-Suite-Datei. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
URL auditSuite = getClass().getResource("/config/my-audit-suite.json");
Results results = new AxeSelenium()
.forConfig(auditSuite)
.run(driver);forConfig(String)
Wählt die Audit-Suite aus, mit der gescannt werden soll, anhand ihres Pfades im Dateisystem. Ähnlich wie forConfig(URL) setzt sie die globale Audit-Suite, sodass sie auch für spätere Scans gilt.
public AxeSelenium forConfig(String auditConfigPath) throws MalformedURLException;Parameter
| Name | Typ | Beschreibung |
|---|---|---|
auditConfigPath |
String |
Der Dateisystempfad der Audit-Suite-Datei. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Wirft
MalformedURLException, wenn der Pfad nicht in eine URL umgewandelt werden kann.
Beispiel
Results results = new AxeSelenium()
.forConfig("/opt/axe/my-audit-suite.json")
.run(driver);AxeSelenium.forRuleset(String)
Wählt das Regelwerk, mit dem gescannt werden soll, wie zum Beispiel wcag2.2 oder 508, mit ausgeschalteten Best-Practice-Regeln. Das Standardregelset ist wcag2.1. Wenn auch eine Audit-Suite konfiguriert ist, verändert sie das ausgewählte Regelset.
Dies setzt das globale Regelset auf AxeConfiguration, sodass es auch für jeden späteren Scan gilt. Siehe AxeConfiguration.forRuleset(String) für die Liste der Regelset-IDs.
public AxeSelenium forRuleset(String rulesetId);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
rulesetId |
String |
Die ID des Regelsets. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
Results results = new AxeSelenium()
.forRuleset("wcag2.2")
.run(driver);AxeSelenium.forRuleset(String, boolean)
Wählt das Regelwerk, mit dem gescannt werden soll, und ob auch Best-Practice-Regeln ausgeführt werden sollen. Andernfalls verhält es sich wie AxeSelenium.forRuleset(String), einschließlich der globalen Festlegung des Regelsets.
public AxeSelenium forRuleset(String rulesetId, boolean enableBestPractices);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
rulesetId |
String |
Die ID des Regelsets. |
enableBestPractices |
boolean |
true, um auch Best-Practice-Regeln auszuführen. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// WCAG 2.1 rules plus best-practice rules
Results results = new AxeSelenium()
.forRuleset("wcag2.1", true)
.run(driver);AxeSelenium.ignoring(String, String)
Entfernt die Verstöße einer Regel aus den Ergebnissen nach dem Scan, wenn die Regel bei einem bestimmten Element fehlschlägt. Die Regel wird weiterhin ausgeführt und meldet ihre Erfolge. Ein Anruf pro Regel genügt, denn ein Übereinstimmen entfernt den gesamten Eintrag der Regel. Rufen Sie es nicht zweimal für dieselbe Regel auf: Wenn beide Selektoren auf fehlerhafte Elemente passen, löst der Scan ein IllegalStateException aus.
Das Filtern funktioniert bei ganzen Regeln: Wenn ein Element, das bei der Regel fehlschlägt, mit dem Selektor übereinstimmt, wird der gesamte Eintrag der Regel aus den Verstößen entfernt, einschließlich der Fehler bei anderen Elementen. Um diese zu behalten, verengen Sie den Scan stattdessen mit exclude.
Der Selektor muss genau mit dem target des Elements in den Ergebnissen übereinstimmen, so wie Java eine Liste druckt: der Zielselektor in eckigen Klammern, wie "[#sidebar]", oder "[#frame, .ad]" für ein Element innerhalb eines iFrames. Kopieren Sie es aus den Ergebnissen eines früheren Scans, anstatt es von Hand zu schreiben.
public AxeSelenium ignoring(String attestSelector, String ruleId);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
attestSelector |
String |
Der target des Elements, wie er in den Ergebnissen erscheint. |
ruleId |
String |
Die ID der Regel, deren Verstoß ignoriert werden soll. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Ignore the known color-contrast violation on the sidebar
Results results = new AxeSelenium()
.ignoring("[#sidebar]", "color-contrast")
.run(driver);disableIframeTesting()
Verhindert, dass Axe DevTools axe-core in iFrames injiziert und Ergebnisse daraus sammelt, sodass nur das Top-Level-Dokument getestet wird. Verwenden Sie es, wenn der Inhalt von iFrames außerhalb Ihrer Kontrolle ist oder das Injizieren in iFrames Fehler verursacht.
public AxeSelenium disableIframeTesting();Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
Results results = new AxeSelenium()
.disableIframeTesting()
.run(driver);setTimeout(int)
Legt fest, wie lange axe-core in Sekunden die Seite analysieren darf, bevor der Scan mit einem Timeout fehlschlägt. Der Standardwert ist 30 Sekunden. Erhöhen Sie ihn für sehr große Seiten.
public AxeSelenium setTimeout(int timeout);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
timeout |
int |
Das Timeout, in Sekunden. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
Results results = new AxeSelenium()
.setTimeout(120)
.run(driver);logResults(AxeReportingOptions)
Schreibt einen Bericht dieses Scans, wenn run abgeschlossen ist: eine .log-Datei mit den aufgelisteten Verstößen und eine .json-Datei mit den vollständigen Ergebnissen. Die Dateinamen und der Standort stammen von reportingOptions; siehe AxeReportingOptions. Ohne diesen Aufruf werden keine Berichtsdateien geschrieben.
Wenn reportingOptions keine Zeilennummer hat, zeichnet Axe DevTools die Zeile Ihres Tests auf, die logResults aufgerufen hat.
public AxeSelenium logResults(AxeReportingOptions reportingOptions);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
reportingOptions |
AxeReportingOptions |
Wo der Bericht geschrieben werden soll und wie der Test darin beschrieben wird. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
// Writes axe-reports/checkout-page-loaded.log and .json
AxeReportingOptions options = new AxeReportingOptions()
.testSuiteName("checkout")
.uiState("page-loaded")
.outputDirectory("axe-reports");
Results results = new AxeSelenium()
.logResults(options)
.run(driver);loggingConfigured()
Berichtet, ob logResults auf diesem AxeSelenium aufgerufen wurde.
public boolean loggingConfigured();Rückgaben
true, wenn Berichtsoptionen festgelegt wurden.
enableTracking(boolean)
Schaltet den Nutzungsdienst für diesen AxeSelenium ein oder aus. Der Nutzungsdienst ist standardmäßig aktiviert. Wenn die AXE_TRACK_USAGE-Umgebungsvariable gesetzt ist, hat sie Vorrang und diese Methode hat keine Wirkung: true schaltet den Dienst ein und jeder andere Wert schaltet ihn aus.
public AxeSelenium enableTracking(boolean state);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
state |
boolean |
true, um Nutzungsdaten zu senden, false, um das Senden zu stoppen. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
Results results = new AxeSelenium()
.enableTracking(false)
.run(driver);trackingEnabled()
Berichtet, ob dieser AxeSelenium Nutzungsdaten sendet.
public boolean trackingEnabled();Rückgaben
true, wenn der Nutzungsdienst aktiviert ist.
setTrackingUrl(String)
Legt die URL fest, an die Nutzungsdaten gesendet werden. Standardmäßig ist dies die AXE_METRICS_URL-Umgebungsvariable oder https://usage.deque.com, wenn diese nicht gesetzt ist. Wenn AXE_METRICS_URL gesetzt ist, hat diese Methode keine Wirkung.
public AxeSelenium setTrackingUrl(String url);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
url |
String |
Die URL des Nutzungsdienstes. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
Results results = new AxeSelenium()
.setTrackingUrl("https://usage.example.com")
.run(driver);setDistinctId(String)
Legt die eindeutige ID fest, die mit den Nutzungsdaten gesendet wird, damit der Nutzungsdienst die Ereignisse eines Benutzers oder einer Maschine gruppieren kann. Die ID wird in ~/.deque/distinct_id gespeichert, sodass spätere Läufe auf derselben Maschine sie weiter verwenden. Wenn die ID aus der AXE_DISTINCT_ID-Umgebungsvariable stammt, hat diese Methode keine Wirkung.
public AxeSelenium setDistinctId(String id);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
id |
String |
Die eindeutige ID. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
Results results = new AxeSelenium()
.setDistinctId("build-agent-7")
.run(driver);setAnalyticsComponentName(String)
Legt den Projektnamen fest, der mit den Nutzungsdaten gesendet wird. Dies setzt auch alle früheren setTrackingUrl- und enableTracking-Aufrufe auf diesem AxeSelenium auf ihre Standardwerte zurück, rufen Sie es daher vor diesen Methoden auf. Eine mit setDistinctId gesetzte eindeutige ID bleibt erhalten.
public AxeSelenium setAnalyticsComponentName(String name);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
name |
String |
Der Projektname. |
Rückgaben
Dieses AxeSelenium, für die Methode Verkettung.
Beispiel
Results results = new AxeSelenium()
.setAnalyticsComponentName("storefront-tests")
.setDistinctId("build-agent-7")
.run(driver);com.deque.html.axecore.args.FromFrames
Ein Selektor, der auf ein Element innerhalb eines oder mehrerer verschachtelter iFrames abzielt. Übergeben Sie ihn an include oder exclude auf AxeSelenium.
import com.deque.html.axecore.args.FromFrames;FromFrames(Object...)
Erstellt einen FromFrames-Selektor aus einem Pfad durch verschachtelte iFrames zu einem Element.
public FromFrames(Object... selectors);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
selectors |
Object... |
Ein Selektor pro Verschachtelungsebene des iFrames, gefolgt von einem Selektor für das Element im innersten iFrame. Jeder Eintrag ist ein CSS-Selektor-String oder ein FromShadowDom-Selektor, wenn sich das iFrame selbst in einer Shadow-Root befindet. |
Beispiel
// The form inside #inner-frame, which is inside #outer-frame
FromFrames checkoutForm = new FromFrames("#outer-frame", "#inner-frame", "form");
// The main element inside an iframe that lives in the shadow root attached to #widget
FromFrames widgetFrame = new FromFrames(new FromShadowDom("#widget", "iframe"), "main");getFromFrames()
Gibt die Selektoren zurück, die den Pfad durch die verschachtelten iFrames bilden.
public List<Object> getFromFrames();Rückgaben
Die Selektoren, als ein List\<Object>.
setFromFrames(Object...)
Ersetzt die Selektoren, die den Pfad durch die verschachtelten iFrames bilden.
public void setFromFrames(Object... fromFrames);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
fromFrames |
Object... |
Der neue Pfad, in der gleichen Form, wie sie der Konstruktor benötigt. |
Beispiel
FromFrames selector = new FromFrames("#frame", "form");
selector.setFromFrames("#frame", "nav");com.deque.html.axecore.args.FromShadowDom
Ein Selektor, der auf ein Element innerhalb eines oder mehrerer verschachtelter Shadow-DOM-Bäume abzielt. Übergeben Sie ihn an include oder exclude auf AxeSelenium.
import com.deque.html.axecore.args.FromShadowDom;FromShadowDom(String...)
Erstellt einen FromShadowDom-Selektor aus einem Pfad durch verschachtelte Shadow-Roots zu einem Element.
public FromShadowDom(String... selectors);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
selectors |
String... |
Ein Selektor pro Shadow-Host, gefolgt von einem Selektor für das Element im innersten Shadow-Root. |
Beispiel
// The button inside the shadow root of .dialog, which is inside the shadow root of app-shell
FromShadowDom closeButton = new FromShadowDom("app-shell", ".dialog", "button.close");getFromShadowDom()
Gibt die Selektoren zurück, die den Pfad durch die verschachtelten Shadow-Roots bilden.
public List<String> getFromShadowDom();Rückgaben
Die Selektoren, als ein List\<String>.
setFromShadowDom(String...)
Ersetzt die Selektoren, die den Pfad durch die verschachtelten Shadow-Roots bilden.
public void setFromShadowDom(String... fromShadowDom);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
fromShadowDom |
String... |
Der neue Pfad, in der gleichen Form, wie sie der Konstruktor benötigt. |
Beispiel
FromShadowDom selector = new FromShadowDom("app-shell", "nav");
selector.setFromShadowDom("app-shell", "footer");com.deque.html.axedevtools.selenium.AxeDriver
Umschließt ein Selenium-WebDriver, damit Axe DevTools axe-core in die von ihm kontrollierte Seite injizieren kann. Jeder AxeSelenium-Scan und jeder Hamcrest-Matcher benötigt ein AxeDriver. Verwenden Sie weiterhin Ihr WebDriver, um die Seite zu navigieren und mit ihr zu interagieren.
AxeDriver(WebDriver)
Erstellt ein AxeDriver für ein Selenium-WebDriver.
public AxeDriver(WebDriver webDriver);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
webDriver |
WebDriver |
Das Selenium-WebDriver, das die zu prüfende Seite steuert. |
Beispiel
WebDriver webDriver = new ChromeDriver();
AxeDriver driver = new AxeDriver(webDriver);
webDriver.get("https://example.com");
Results results = new AxeSelenium().run(driver);com.deque.html.axedevtools.selenium.AxeConfiguration
Enthält Einstellungen, die für jeden Scan im Testlauf gelten: das axe-core-Skript, die Prüfungssuite, das Regelwerk und die in den Berichten verwendeten Standardwerte. Es gibt eine gemeinsame Instanz, die Sie mit AxeConfiguration.configure() erhalten. Richten Sie es einmal ein, bevor Tests ausgeführt werden.
Methoden auf AxeSelenium wie forRuleset und forConfig ändern ebenfalls diese gemeinsame Instanz.
// Code runs once before any tests are run
public void setupOnce() {
AxeConfiguration.configure()
.withAxeScript(axeURL)
.forAuditSuite(auditURL)
.forRuleset("508")
.outputDirectory("my-axe-results");
}configure()
Gibt die gemeinsame AxeConfiguration-Instanz zurück. Diese statische Methode ist der einzige Weg, um ein AxeConfiguration zu erhalten.
public static AxeConfiguration configure();Rückgaben
Die gemeinsame AxeConfiguration.
Beispiel
AxeConfiguration config = AxeConfiguration.configure();reset()
Replaces the shared configuration with a new one that has default settings. Use it between test classes that need different global settings. An AxeConfiguration you obtained before calling reset keeps its old settings, so call configure() again afterward.
public static void reset();Beispiel
@AfterClass
public static void tearDown() {
AxeConfiguration.reset();
}forAuditSuite(URL)
Wählt die Prüfungssuite (eine JSON-Regelkonfigurationsdatei) für jeden Scan per URL aus. Wenn keine Prüfungssuite festgelegt ist, verwendet Axe DevTools die Datei, die von der Umgebungsvariable AXE_RULESET_PATH benannt wird, oder falls diese nicht gesetzt ist, eine config/axe-ruleset.json-Ressource im Klassenpfad.
public AxeConfiguration forAuditSuite(URL auditConfigPath);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
auditConfigPath |
URL |
Die URL der Audit-Suite-Datei. |
Rückgaben
Dieses AxeConfiguration, für die Methode Verkettung.
Beispiel
AxeConfiguration.configure()
.forAuditSuite(getClass().getResource("/config/my-audit-suite.json"));forAuditSuite(String)
Wählt die Prüfungssuite für jeden Scan nach ihrem Pfad im Dateisystem aus.
public AxeConfiguration forAuditSuite(String auditConfigPath) throws MalformedURLException;Parameter
| Name | Typ | Beschreibung |
|---|---|---|
auditConfigPath |
String |
Der Dateisystempfad der Audit-Suite-Datei. |
Rückgaben
Dieses AxeConfiguration, für die Methode Verkettung.
Wirft
MalformedURLException, wenn der Pfad nicht in eine URL umgewandelt werden kann.
Beispiel
AxeConfiguration.configure()
.forAuditSuite("/opt/axe/my-audit-suite.json");withAxeScript(URL)
Wählt das axe-core-Skript aus, das in die Seite injiziert werden soll, anstatt des mit Axe DevTools gebündelten. Verwenden Sie es, um ein spezifisches axe-core-Build festzulegen.
public AxeConfiguration withAxeScript(URL axeScript);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
axeScript |
URL |
Die URL des axe-core-Skripts. |
Rückgaben
Dieses AxeConfiguration, für die Methode Verkettung.
Beispiel
AxeConfiguration.configure()
.withAxeScript(getClass().getResource("/axe.min.js"));AxeConfiguration.forRuleset(String)
Wählt das Regelwerk für jeden Scan aus, wobei Best-Practice-Regeln deaktiviert sind. Das Standardregelwerk ist wcag2.1.
public AxeConfiguration forRuleset(String rulesetId);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
rulesetId |
String |
Einer der unten aufgeführten Regelwerk-IDs. |
Die Regelwerk-IDs lauten:
wcag2wcag2.1wcag2.2wcag2aaawcag2.1aaawcag2.2aaa508ttv5en301549rgaav4
Rückgaben
Dieses AxeConfiguration, für die Methode Verkettung.
Beispiel
AxeConfiguration.configure().forRuleset("wcag2.2");AxeConfiguration.forRuleset(String, boolean)
Wählt das Regelwerk für jeden Scan aus und ob auch Best-Practice-Regeln ausgeführt werden sollen.
public AxeConfiguration forRuleset(String rulesetId, boolean enableBestPractices);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
rulesetId |
String |
Siehe AxeConfiguration.forRuleset(String) für die Regelwerk-IDs. |
enableBestPractices |
boolean |
true, um auch Best-Practice-Regeln auszuführen. |
Rückgaben
Dieses AxeConfiguration, für die Methode Verkettung.
Beispiel
AxeConfiguration.configure().forRuleset("508", true);getTestSuiteName()
Gibt den Standardnamen der Prüfungssuite zurück, der in Berichten verwendet wird. Der Standard ist axe-run.
public String getTestSuiteName();AxeConfiguration.testSuiteName(String)
Legt den Standardnamen der Prüfungssuite fest, der in Berichtsnamen und Berichtsinhalten verwendet wird. Ein AxeReportingOptions.testSuiteName(String)-Wert überschreibt ihn für einen Bericht.
public AxeConfiguration testSuiteName(String testSuiteName);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
testSuiteName |
String |
Der Name der Prüfungssuite. |
Rückgaben
Dieses AxeConfiguration, für die Methode Verkettung.
Beispiel
AxeConfiguration.configure().testSuiteName("storefront");AxeConfiguration.getOutputDirectory()
Gibt das Standardverzeichnis zurück, in das Berichte geschrieben werden. Der Standard ist axe-reports.
public String getOutputDirectory();AxeConfiguration.outputDirectory(String)
Legt das Standardverzeichnis fest, in das Berichte geschrieben werden. Fehlende Verzeichnisse werden erstellt, wenn ein Bericht geschrieben wird. Ein AxeReportingOptions.outputDirectory(String)-Wert überschreibt es für einen Bericht.
public AxeConfiguration outputDirectory(String outputDirectory);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
outputDirectory |
String |
Der Verzeichnispfad. |
Rückgaben
Dieses AxeConfiguration, für die Methode Verkettung.
Beispiel
AxeConfiguration.configure().outputDirectory("target/axe-reports");AxeConfiguration.getUserAgent()
Gibt den Standardbenutzeragenten zurück, der in Berichten aufgezeichnet wird, oder null, wenn keiner festgelegt ist.
public String getUserAgent();AxeConfiguration.userAgent(String)
Legt den Standardbenutzeragenten fest, der in Berichten aufgezeichnet wird. Es ist nur ein Label und ändert nicht den Benutzeragenten, den der Browser sendet. Ein AxeReportingOptions.userAgent(String)-Wert überschreibt ihn für einen Bericht.
public AxeConfiguration userAgent(String userAgent);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
userAgent |
String |
Der aufzuzeichnende Benutzeragent. |
Rückgaben
Dieses AxeConfiguration, für die Methode Verkettung.
Beispiel
AxeConfiguration.configure().userAgent("Chrome 130 headless");AxeConfiguration.getTestMachine()
Gibt den Standardnamen der Testmaschine zurück, der in Berichten aufgezeichnet wird, oder null, wenn keiner festgelegt ist.
public String getTestMachine();AxeConfiguration.testMachine(String)
Legt den Standardnamen der Testmaschine fest, der in Berichten aufgezeichnet wird. Ein AxeReportingOptions.testMachine(String)-Wert überschreibt ihn für einen Bericht.
public AxeConfiguration testMachine(String testMachine);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
testMachine |
String |
Der Name der Testmaschine. |
Rückgaben
Dieses AxeConfiguration, für die Methode Verkettung.
Beispiel
AxeConfiguration.configure().testMachine(System.getenv("HOSTNAME"));com.deque.html.axedevtools.selenium.reporter.AxeReportingOptions
Beschreibt einen Bericht: wo er geschrieben wird und welche Prüfungssuite, UI-Zustand, Benutzeragent, Testmaschine und Zeilennummer darin aufgezeichnet werden. Übergeben Sie es an logResults. Es implementiert ReportingOptions.
Jeder Wert, den Sie nicht festlegen, fällt auf die entsprechende AxeConfiguration-Einstellung zurück. Die Berichtsdateien heißen <test suite name>-<UI state>.log und .json, geben Sie also jeder Prüfung in einer Suite ihren eigenen UI-Zustand oder der spätere Bericht überschreibt den früheren.
AxeReportingOptions()
Erstellt ein AxeReportingOptions ohne gesetzte Werte, sodass jeder Wert von AxeConfiguration stammt, bis Sie ihn festlegen. Der UI-Zustand hat keinen Standard und muss festgelegt werden, bevor ein Bericht geschrieben wird.
public AxeReportingOptions();Beispiel
AxeReportingOptions options = new AxeReportingOptions()
.uiState("home-page");defaultAuditReportingOptions()
Gibt neue Optionen mit dem Ausgabeverzeichnis target/axe-report, dem Prüfungssuitennamen accessibility und dem UI-Zustand check zurück, sodass der Bericht in target/axe-report/accessibility-check.log und .json geschrieben wird. Dies sind die Optionen, die der Hamcrest isAuditedForAccessibility()-Matcher verwendet, wenn Sie logResults nicht aufrufen.
public static AxeReportingOptions defaultAuditReportingOptions();Rückgaben
Eine neue AxeReportingOptions.
Beispiel
Results results = new AxeSelenium()
.logResults(AxeReportingOptions.defaultAuditReportingOptions())
.run(driver);getSuiteTestName()
Gibt den Namen der Prüfungssuite für diesen Bericht zurück oder den AxeConfiguration-Standard, wenn keiner festgelegt ist.
public String getSuiteTestName();AxeReportingOptions.testSuiteName(String)
Legt den Namen der Prüfungssuite für diesen Bericht fest. Es ist der erste Teil der Berichtsdateinamen.
public AxeReportingOptions testSuiteName(String testSuiteName);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
testSuiteName |
String |
Der Name der Prüfungssuite. |
Rückgaben
Dieses AxeReportingOptions, für die Methode Verkettung.
Beispiel
AxeReportingOptions options = new AxeReportingOptions()
.testSuiteName("checkout")
.uiState("payment-step");getUiState()
Gibt den UI-Zustand für diesen Bericht zurück.
public String getUiState();Wirft
MissingUIStateException, wenn kein UI-Zustand festgelegt wurde.
uiState(String)
Legt den UI-Zustand für diesen Bericht fest: ein kurzer Name dafür, wie die Seite aussah, als sie überprüft wurde, zum Beispiel menu-open oder form-errors. Es ist der zweite Teil der Berichtsdateinamen und obligatorisch: das Schreiben eines Berichts ohne ihn löst MissingUIStateException aus.
public AxeReportingOptions uiState(String uiState);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
uiState |
String |
Der UI-Zustandsname. |
Rückgaben
Dieses AxeReportingOptions, für die Methode Verkettung.
Beispiel
webDriver.findElement(By.id("menu-button")).click();
Results results = new AxeSelenium()
.logResults(new AxeReportingOptions().uiState("menu-open"))
.run(driver);AxeReportingOptions.getOutputDirectory()
Gibt das Verzeichnis zurück, in das dieser Bericht geschrieben wird, oder den AxeConfiguration-Standard, wenn keiner festgelegt ist.
public String getOutputDirectory();AxeReportingOptions.outputDirectory(String)
Legt das Verzeichnis fest, in das dieser Bericht geschrieben wird. Fehlende Verzeichnisse werden erstellt, wenn der Bericht geschrieben wird.
public AxeReportingOptions outputDirectory(String outputDirectory);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
outputDirectory |
String |
Der Verzeichnispfad. |
Rückgaben
Dieses AxeReportingOptions, für die Methode Verkettung.
Beispiel
AxeReportingOptions options = new AxeReportingOptions()
.outputDirectory("target/axe-reports/checkout")
.uiState("cart");getFileName()
Gibt den Namen der Berichtsdatei ohne Erweiterung zurück: den Prüfungssuitennamen und den UI-Zustand durch einen Bindestrich verbunden, gefolgt von einem Zeitstempel, wenn useUniqueFilename aktiviert ist.
public String getFileName();getFilePath(String)
Gibt den vollständigen Pfad einer Berichtsdatei zurück: das Ausgabeverzeichnis, ein /, der Dateiname und extension.
public String getFilePath(String extension);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
extension |
String |
Die Dateierweiterung, einschließlich des führenden Punktes, wie z. B. .json. |
Rückgaben
Der Dateipfad.
Beispiel
AxeReportingOptions options = new AxeReportingOptions()
.testSuiteName("checkout")
.uiState("cart")
.outputDirectory("axe-reports");
String jsonPath = options.getFilePath(".json"); // axe-reports/checkout-cart.jsonuseUniqueFilename(boolean)
Fügt den Bericht-Dateinamen ein UTC-Zeitstempel hinzu, sodass bei einem erneuten Ausführen der gleichen Prüfung neue Dateien geschrieben werden, anstatt den vorherigen Bericht zu überschreiben.
Diese Methode gibt die ReportingOptions-Schnittstelle anstelle von AxeReportingOptions zurück, daher sollte sie als separate Anweisung aufgerufen werden, wie im Beispiel gezeigt, und nicht in einer Kette, die Sie einem AxeReportingOptions zuweisen oder an logResults übergeben. Die .log- und .json-Dateinamen werden separat erstellt, sodass ihre Zeitstempel leicht abweichen können.
public ReportingOptions useUniqueFilename(boolean uniqueFilename);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
uniqueFilename |
boolean |
true, um einen Zeitstempel zu Dateinamen hinzuzufügen. |
Rückgaben
Dieses Objekt, typisiert als ReportingOptions.
Beispiel
AxeReportingOptions options = new AxeReportingOptions()
.testSuiteName("nightly")
.uiState("home");
options.useUniqueFilename(true);AxeReportingOptions.getUserAgent()
Gibt den in diesem Bericht aufgezeichneten User-Agent zurück oder den AxeConfiguration-Standard, wenn keiner festgelegt ist.
public String getUserAgent();AxeReportingOptions.userAgent(String)
Setzt den im Bericht aufgezeichneten User-Agent. Es ist nur ein Label und ändert nicht den User-Agent, den der Browser sendet.
public AxeReportingOptions userAgent(String userAgent);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
userAgent |
String |
Der aufzuzeichnende Benutzeragent. |
Rückgaben
Dieses AxeReportingOptions, für die Methode Verkettung.
Beispiel
String userAgent = (String) ((JavascriptExecutor) webDriver).executeScript("return navigator.userAgent");
AxeReportingOptions options = new AxeReportingOptions()
.userAgent(userAgent)
.uiState("home");AxeReportingOptions.getTestMachine()
Gibt den in diesem Bericht aufgezeichneten Namen der Testmaschine zurück oder den AxeConfiguration-Standard, wenn keiner festgelegt ist.
public String getTestMachine();AxeReportingOptions.testMachine(String)
Setzt den im Bericht aufgezeichneten Namen der Testmaschine.
public AxeReportingOptions testMachine(String testMachine);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
testMachine |
String |
Der Name der Testmaschine. |
Rückgaben
Dieses AxeReportingOptions, für die Methode Verkettung.
Beispiel
AxeReportingOptions options = new AxeReportingOptions()
.testMachine("ci-linux-04")
.uiState("home");getLineNum()
Gibt die in diesem Bericht aufgezeichnete Testzeilennummer zurück oder null, wenn keine festgelegt ist.
public String getLineNum();lineNum(String)
Setzt die im Bericht aufgezeichnete Testzeilennummer und ersetzt dabei jeden bereits festgelegten Wert. Es wird selten benötigt: logResults zeichnet die aufrufende Zeile automatisch auf, wenn keine Zeilennummer festgelegt ist.
public AxeReportingOptions lineNum(String lineNum);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
lineNum |
String |
Die Zeilennummer. |
Rückgaben
Dieses AxeReportingOptions, für die Methode Verkettung.
Beispiel
AxeReportingOptions options = new AxeReportingOptions()
.lineNum("42")
.uiState("home");lineNumIfEmpty(String)
Setzt die Testzeilennummer nur, wenn noch keine gesetzt ist. logResults verwendet sie, um die aufrufende Zeile aufzuzeichnen, ohne einen von Ihnen mit lineNum gesetzten Wert zu überschreiben.
Diese Methode gibt die ReportingOptions-Schnittstelle anstelle von AxeReportingOptions zurück, daher sollte sie als separate Anweisung aufgerufen werden und nicht in einer Kette, die Sie einem AxeReportingOptions zuweisen oder an logResults übergeben.
public ReportingOptions lineNumIfEmpty(String lineNum);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
lineNum |
String |
Die Zeilennummer. |
Rückgaben
Dieses Objekt, typisiert als ReportingOptions.
com.deque.html.axedevtools.selenium.reporter.MissingUIStateException
Ein RuntimeException, der geworfen wird, wenn ein Bericht mit Berichtsoptionen geschrieben wird, die keinen UI-Zustand haben, mit der Meldung „Bitte geben Sie den UI-Zustand der aktuellen Testseite an“. Um dies zu vermeiden, rufen Sie uiState für jedes AxeReportingOptions auf, das Sie an logResults übergeben.
com.deque.html.axedevtools.selenium.results.ResultsFilter
Hält die Element- und Regelpaare, die aus den Ergebnissen entfernt werden sollen. Jedes AxeSelenium erstellt sein eigenes ResultsFilter, das Sie mit AxeSelenium.ignoring(String, String) hinzufügen, anstatt selbst eines zu erstellen. Sie können auch ein ResultsFilter direkt verwenden, um ein bestehendes Results-Objekt zu filtern.
filterIgnoredViolations(Results)
Entfernt die ignorierten Verstöße aus results. Der gesamte Eintrag einer Regel wird aus den Verstößen entfernt, wenn die Regel-ID übereinstimmt und einer ihrer Knoten einen target hat, der einem ignorierten Selektor entspricht, auch wenn andere Knoten nicht übereinstimmen. Das Results-Objekt, das Sie übergeben, wird modifiziert und zurückgegeben.
public Results filterIgnoredViolations(Results results);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
results |
Results |
Die zu filternden Ergebnisse. |
Rückgaben
Dasselbe Results-Objekt, mit den entfernten ignorierten Verstößen.
Beispiel
Results results = new AxeSelenium().run(driver);
new ResultsFilter()
.ignoring("[#legacy-widget]", "aria-allowed-attr")
.filterIgnoredViolations(results);ResultsFilter.ignoring(String, String)
Fügt ein Element- und Regelpaar hinzu, das ignoriert werden soll. Der Selektor muss genau einem Knoten-target entsprechen, in der Form "[#sidebar]"; siehe AxeSelenium.ignoring(String, String).
public ResultsFilter ignoring(String cssSelector, String ruleId);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
cssSelector |
String |
Der target des Elements, wie er in den Ergebnissen erscheint. |
ruleId |
String |
Die ID der Regel, deren Verstoß ignoriert werden soll. |
Rückgaben
Dieses ResultsFilter, für die Methode Verkettung.
Beispiel
ResultsFilter filter = new ResultsFilter()
.ignoring("[#sidebar]", "color-contrast")
.ignoring("[.third-party-iframe]", "frame-title");com.deque.html.axedevtools.reporter.AxeDevtoolsReporter
Schreibt die .log- und .json-Berichtsdateien für einen Scan. AxeSelenium und die Hamcrest-Matcher verwenden es für Sie, wenn Sie logResults aufrufen; verwenden Sie es direkt nur, um über Results zu berichten, die Sie bereits haben.
AxeDevtoolsReporter()
Erstellt ein AxeDevtoolsReporter.
public AxeDevtoolsReporter();Beispiel
AxeDevtoolsReporter reporter = new AxeDevtoolsReporter();generateReport(Results, String)
Gibt eine Klartext-Zusammenfassung der Verstöße in results zurück: den Hilfetext und die URL jeder Regel, das Ziel jedes betroffenen Knotens und die zur Behebung durchzuführenden Überprüfungen, gefolgt von dem Befehl, der die Ergebnisse erzeugt hat. Dies ist der Text, der in die .log-Datei geschrieben wird, und der Text, den der Hamcrest-isAxeClean()-Matcher anzeigt, wenn eine Assertion fehlschlägt.
public String generateReport(Results results, String executedCommand);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
results |
Results |
Die Scan-Ergebnisse. |
executedCommand |
String |
Der Befehlstext, der in den Bericht aufgenommen werden soll, zum Beispiel von runCommand(). |
Rückgaben
Der Berichtstext.
Beispiel
AxeSelenium axe = new AxeSelenium();
Results results = axe.run(driver);
String report = new AxeDevtoolsReporter().generateReport(results, axe.runCommand());
System.out.println(report);report(ReportingOptions, Results, String)
Schreibt den Bericht für results in zwei Dateien an dem von reportingOptions angegebenen Pfad: eine .log-Datei mit dem generateReport-Text und eine .json-Datei mit den vollständigen Ergebnissen. Wenn reportingOptions null ist, wird nichts geschrieben.
public void report(ReportingOptions reportingOptions, Results results, String executedCommand);Parameter
| Name | Typ | Beschreibung |
|---|---|---|
reportingOptions |
ReportingOptions |
Wo der Bericht geschrieben werden soll, normalerweise ein AxeReportingOptions. |
results |
Results |
Die Scan-Ergebnisse. |
executedCommand |
String |
Der Befehl, der die Ergebnisse erzeugt hat. |
Wirft
MissingUIStateException, wenn reportingOptions keinen UI-Zustand hat, oder ein RuntimeException, wenn die Dateien nicht geschrieben werden können.
Beispiel
AxeSelenium axe = new AxeSelenium();
Results results = axe.run(driver);
new AxeDevtoolsReporter().report(
new AxeReportingOptions().uiState("after-login"),
results,
axe.runCommand());com.deque.html.axedevtools.utils.FileUtils
Datei-Helfer, die Axe DevTools intern verwendet, um Berichtsdateien zu lesen und zu schreiben. Sie sind nicht für die Verwendung in Ihren Tests gedacht.
