Domanda XCUIElement - Ottieni valore immagine


Ho una variabile che è di tipo .Image e classe XCUIElement. Qualcosa come questo:

var image = app.descendantsMatchingType(.Image).elementAtIndex(0)

C'è un modo per estrarre l'immagine reale in modo da poterla confrontare con un'altra immagine?

Ho provato a calare il value metodo, ma restituisce una stringa. Lanciarlo a UIImage fallisce sempre.


11
2017-07-06 16:25


origine


risposte:


Ho avuto una conversazione su questo con l'evangelista degli Strumenti per gli sviluppatori Apple di recente. Non esiste attualmente alcun modo per accedere all'immagine reale da una vista immagine, un pulsante, ecc. Allo stesso modo, non c'è modo di accedere ad altre proprietà di viste che potrebbero essere di interesse, come "isHidden" o "attributeText", ecc. ha detto che gli ingegneri del team di test dell'interfaccia utente sono interessati ai casi d'uso a cui le persone desiderano accedere a queste proprietà, quindi sarebbe molto utile, sia per loro che per le altre persone che desiderano questa funzionalità, se si volesse presentare una segnalazione di bug / richiesta di funzionalità per richiederlo a https://bugreport.apple.com

Come suggerimento riguardante la proprietà "value" su un XCUIElement, almeno per ora sembra che si associ alla proprietà "accessibilityValue" di qualsiasi vista a cui fa riferimento XCUIElement. Quindi, se imposti il ​​valore di accessibilità di una vista che ti interessa contenere alcune informazioni che ti interessano per la verifica, allora questo può aiutare a testare. Due cose a cui pensare:

1) Anche se la proprietà "value" di un XCUIElement è di tipo "id", il tipo della proprietà accessibilityValue è "NSString". Non so cosa succederebbe se provassi a forzare qualche valore non stringa (come un'immagine) in accessibilityValue e poi provi a recuperarlo dalla proprietà "value" di XCUIElement, ma sospetto che non funzionerebbe bene. In parte perché:

2) La proprietà accessibilityValue di una vista viene effettivamente utilizzata dalla funzione VoiceOver di Apple per i disabili visivi. Quando il valore è impostato, verrà letto ad alta voce quando l'utente tocca quell'elemento (che è il motivo per cui dovrebbe essere una stringa).

Ho anche trattato il problema di non essere in grado di accedere alle proprietà della vista tramite XCUIElement in modo più dettagliato qui: http://www.danielhall.io/exploring-the-new-ui-testing-features-of-xcode-7


17
2017-07-06 16:48