Objective-C Unterstützung
Folgen Sie den Schritten, um das axeDevToolsXCUI-Framework zu erhalten. Alle auf dieser Seite verfügbaren Funktionen werden vollständig in Objective-C unterstützt. Importieren Sie den Header in jede Datei, in der Sie das XCUI-Framework verwenden möchten:
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>Verwenden Sie die setUp -Methode in Ihren UITests, um ein AxeDevTools -Objekt zu initialisieren, um mit den verfügbaren Funktionen zu interagieren. Generieren Sie einen API-Schlüssel auf axe.deque.com. Wenn bevorzugt, können Sie stattdessen mit einem Benutzernamen und Passwort authentifizieren.
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools startScanSessionWithApiKey:@"API_KEY"
projectId:@"DEVHUB_PROJECT_ID"
error:&error];
}Einen Scan durchführen
Um einen Scan auf einem Bildschirm in Ihrer Anwendung oder einem beliebigen XCUIElement in Ihrer Anwendung durchzuführen, erstellen Sie einen neuen Testfall innerhalb Ihrer UITests und rufen Sie die run -Methode innerhalb Ihres AxeDevTools -Objekts auf:
- (void)testAccessibilityOfFirstScreen {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
NSError* error;
AxeResult* result = [axeDevTools runOnElement:app error:&error];
XCTAssertEqual(result.failures.count, 0); // This allows you to assert if there are accessibility failures
}Scan an das Dashboard senden
Sobald Sie den Scan haben, können Sie ihn an das Dashboard senden, indem Sie die postResult -Methode von Ihrem AxeDevTools -Objekt aufrufen:
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];Wenn Sie Ihren Scan nicht taggen möchten, können Sie ein leeres Array an den withTags -Parameter übergeben. Wenn Sie dem Scan einen benutzerdefinierten Namen geben möchten, können Sie ihn an den withScanName -Parameter übergeben.
Vollständiges Beispiel
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>
#import <XCTest/XCTest.h>
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools loginWithAPIKey:@"API_KEY"
toServer:@""
error:&error];
}
- (void)testAccessibilityOfFirstScreen {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
NSError* error;
AxeResult* result = [axeDevTools runOnElement:app error:&error];
XCTAssertEqual(result.failures.count, 0);
[axeDevTools postResult:result
withTags:@[@"Build 10.6.1"]
withScanName:@""
error:&error];
}
@endFunktionen
Ansichten ignorieren
Sobald Sie eingeloggt sind, verwenden Sie das AxeDevTools -Objekt, um Regeln für bestimmte Ansichten zu ignorieren. Sie können alle Ansichten einer bestimmten Klasse ignorieren oder eine Ansicht mit einer bestimmten Accessibility Identifier ignorieren:
NSDictionary* ignoreRules = @{ @"UILabel": @[@"InScrollView"], // ignore InScrollView for all UILabels
@"LoginScreen.Button": @[@"TouchTargetSize"] // ignore TouchTargetSize for the view with this accessibility id
};
[[axeDevTools configuration] ignoreWithRulesFor: ignoreRules];Regeln ignorieren
Sobald Sie eingeloggt sind, verwenden Sie das AxeDevTools -Objekt, um alle Regeln für einen vollständigen Scan zu ignorieren:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];Sie können auch Regeln wieder zur Konfiguration hinzufügen, indem Sie die bool von true auf falseändern:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];Scans lokal speichern
Speichern Sie die Ergebnisse lokal, um die axe DevTools Reporter CLI zu nutzen, um einen umfassenden Bericht aus einer Reihe von Scans innerhalb Ihrer CI/CD-Pipeline zu erstellen.
Ein Scan wird als .json Datei gespeichert. Scans lokal zu speichern, wird nur im automatisierten Testen unterstützt.
Falls der Pfad und Dateiname nicht angegeben sind, werden die Ergebnisse als "(APPID)-(CURRENT_SCREEN_TITLE).json" benannt und in einem Ordner namens "AxeDevToolsResults" in Ihrem Benutzer Ordner gespeichert.
Sobald Sie eingeloggt sind, verwenden Sie das AxeDevTools -Objekt, um Ihren Scan als JSON-Datei zu speichern. Um den Standardpfad und Dateinamen zu verwenden, senden Sie leere Strings an die Parameter:
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];