2016-06-10 98 views
6

Ecco una foto del tavolo con cui sto lavorando.UITest colore di un'etichetta (non l'etichetta UI)

enter image description here

Sto solo cercando di ottenere il colore della "richiesta" (grigio) o "bozza" (arancione). Sono in grado di ottenere la stringa effettiva di "richiesta" o "bozza" di

var timeSheetStatus = 
    app.tables.element.cells.elementBoundByIndex(0).staticTexts.elementBoundByIndex(1).label 

ma questo è solo una stringa e non un UILabel (se fosse un'UILabel sarei in grado di fare label.textColor Credo). Come ottengo il colore di questa stringa, così posso affermare che è effettivamente grigio o arancione?

+0

Certo che è un'etichetta. Una stringa non può semplicemente apparire magicamente nell'interfaccia; deve essere disegnato da qualche oggetto di interfaccia. – matt

+0

@matt Oh scusate, ho iniziato a imparare da zero partendo un paio di giorni fa. Intendevo dire che il codice nella mia domanda restituisce una stringa, non una UILabel, quindi credo di essere solo confuso su come far funzionare la UILabel di questo elemento. – user3613290

+0

Dovrai scrivere un test unitario per la colorazione di UILabel, dove sarai in grado di accedere all'attributo color di UILabel. – Oletha

risposta

5

Ho paura che non riuscirai a farlo tramite il test dell'interfaccia utente. Il test dell'interfaccia utente può "vedere" l'interfaccia solo nella misura in cui l'accessibilità lo espone. Quindi puoi "vedere" il testo ma non puoi "vedere" che questa cosa è un UILabel; Test UI non ne sa nulla. Quindi non puoi esplorare la sua natura come UILabel.

0

Non è possibile ottenere il colore direttamente, ma se è necessario testare l'interfaccia utente per assicurarsi che le etichette siano evidenziate correttamente, è possibile impostare l'etichetta di accessibilità per includere informazioni come il colore o il fatto che sia evidenziato.

Ciò migliorerà anche l'usabilità dell'app, poiché gli utenti ipovedenti non vedranno comunque il colore. Quindi è possibile scrivere test per garantire che almeno l'etichetta di accessibilità sia corretta. C'è ovviamente ancora la possibilità che lo sviluppatore renda il colore dell'etichetta verde e l'etichetta di accessibilità "gialla", ma questo è un rischio generale di utilizzare l'accessibilità per interrogare gli elementi dell'interfaccia utente.

Ad esempio, nel codice dell'app:

myLabel.text = "Draft" myLabel.color = .yellow myLabel.accessibilityLabel = "Draft (Yellow)"