Scansiona una parte dello schermo
Se desidera testare l'accessibilità di un componente o di una funzionalità specifica, può eseguire una scansione mirata di quell'elemento o vista anziché analizzare l'intero schermo.
Usa il run(onElement: ) metodo
È possibile scansionare un singolo elemento o una singola vista utilizzando il metodo run(onElement: ). Questo metodo accetta qualsiasi XCUIElement come parametro. Può accettare qualsiasi cosa da una XCUIApplication (l'intera app) fino a un elemento specifico come un pulsante, un'etichetta, un campo di testo o qualsiasi altro elemento dell'interfaccia utente.
Per trovare un elemento specifico, utilizzi le query XCTest. Per maggiori informazioni, consulti la documentazione Apple.
Si consiglia di verificare che l'elemento che si sta cercando di analizzare esista e sia visualizzato sullo schermo prima di eseguire una scansione, per garantire che il framework sia in grado di trovare l'elemento e restituire i risultati corretti. Se l'elemento non viene rilevato sullo schermo al momento della scansione, potrebbe essere restituito un risultato incompleto.
Esempio
Di seguito è riportato un test di esempio che cerca un pulsante con il titolo «Menu», ne verifica la presenza sullo schermo ed esegue una scansione. Questo è un esempio di query di base, anche se sono possibili query più complesse che coinvolgono figli e discendenti.
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)
}Quali regole possono essere eseguite sulle scansioni parziali dello schermo?
Tutte le regole verranno eseguite sulle scansioni parziali dello schermo, a meno che Lei non le ignori esplicitamente. Tuttavia, le regole ScreenTitle e InScrollView potrebbero restituire NeedsReview se la scansione parziale dello schermo non include tutte le informazioni necessarie per passare o fallire.
