Bildschirmausschnitt scannen

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Wenn Sie eine bestimmte Komponente oder Funktion auf Barrierefreiheit testen möchten, können Sie einen gezielten Scan für dieses Element oder diese Ansicht durchführen, anstatt den gesamten Bildschirm zu scannen.

Verwenden Sie die run(onElement: ) Methode

Ein einzelnes Element oder eine einzelne Ansicht kann mit der run(onElement: ) Methode gescannt werden. Diese Methode akzeptiert jedes XCUIElement als Parameter. Es kann alles akzeptieren, von einer XCUIApplication (der gesamten App) bis hin zu einem bestimmten Element wie einem Button, einem Label, einem Textfeld oder einem beliebigen anderen UI-Element.

Um ein bestimmtes Element zu finden, verwenden Sie XCTest Queries. Weitere Informationen finden Sie in der Dokumentation von Apple:

Wir empfehlen, vor dem Ausführen eines Scans zu überprüfen, ob das Element existiert und auf dem Bildschirm sichtbar ist, um sicherzustellen, dass das Framework das Element finden und korrekte Ergebnisse liefern kann. Falls das Element zum Zeitpunkt des Scans nicht auf dem Bildschirm gefunden wird, kann stattdessen ein unvollständiges Ergebnis ausgegeben werden.

Beispiel

Im Folgenden sehen Sie einen Beispieltest, der nach einer Schaltfläche mit dem Titel „Menü“ sucht, ihre Existenz auf dem Bildschirm überprüft und einen Scan darauf ausführt. Dies ist ein Beispiel für eine grundlegende Abfrage, wobei auch komplexere Abfragen mit untergeordneten Elementen und Nachkommen möglich sind.

var axe: AxeDevTools?
var app = XCUIApplication()

override func setUpWithError() throws {
    // log in to AxeDevTools
    axe = try? AxeDevTools.startSession(apiKey: "<DEQUE_APIKEY>",
            projectId: "<DEVHUB_PROJECT_ID>")

    // launch app and prevent tests from continuing if element is not found
    app.launch()
    continueAfterFailure = true
}

func testAccessibility() throws {
    // finds a button with the title or accessibilityIdentifier "Menu"
    // .firstMatch ensures that the test doesn't fail if multiple matching elements exist
    let buttonToTest = app.buttons["Menu"].firstMatch
    XCTAssert(buttonToTest.isHittable, "Button 'Menu' does not exist on the screen.")

    let result = try axe.run(onElement: buttonToTest)
    try axe.postResult(result)
}

Welche Regeln können bei Teilbildschirmscans ausgeführt werden?

Alle Regeln werden bei Teilbildschirmscans ausgeführt, sofern sie nicht ausdrücklich vom Benutzer ignoriert werden. Allerdings können die Regeln ScreenTitle und InScrollView NeedsReview zurückgeben, wenn der partielle Bildschirmscan nicht alle notwendigen Informationen enthält, um zu bestehen oder zu scheitern.