1) sto testando l'interfaccia utente con rapido in Xcode 7.3 e utilizzando sia .hittable e .exists a verificare che l'etichetta è nascosto o meno e entrambi lavorano. Eseguo il test per "true" e "false" per essere sicuro che in entrambi i casi sia d'accordo con il risultato.
Ho un'etichetta il cui testo statico è "Informazioni traccia" e impostato per essere nascosto quando l'app viene caricata per la prima volta, quindi in seguito premo un pulsante per mostrare l'etichetta, ed ecco il risultato dopo la visualizzazione dell'etichetta.
// test fallisce
let trackInfoLabel = app.staticTexts["Track info"]
XCTAssertEqual(trackInfoLabel.exists, true)
XCTAssertEqual(trackInfoLabel.hittable, true)
// test passa
XCTAssertEqual(trackInfoLabel.exists, false)
XCTAssertEqual(trackInfoLabel.hittable, false)
// test passa
let trackInfoLabel = app.staticTexts["Track Info"]
XCTAssertEqual(trackInfoLabel.exists, true)
XCTAssertEqual(trackInfoLabel.hittable, true)
// test fallisce
XCTAssertEqual(trackInfoLabel.exists, false)
XCTAssertEqual(trackInfoLabel.hittable, false)
Lettere accese quando premo il pulsante per nascondere l'etichetta, tutti i risultati vengono girati di fronte. Ciò conferma che entrambe le proprietà (hittable ed esiste) funzionano per label.hidden.
2) Un altro modo per scoprire se un elemento è nascosto, si può fare element.frame.size.width == 0 || element.frame.size.height == 0
Questo non funziona per me su Xcode 7.1. Aggiorno alcuni controlli a nascosto in modo dinamico e verifica in seguito e questo restituisce sempre true, anche se il controllo è ovviamente nascosto. – Alex
Xcode 7.2 test hittable non funziona correttamente per gli elementi nascosti, sia –
Xcode 7.2.1 test hittable non funziona correttamente per gli elementi nascosti – san