2016-06-10 14 views
6

Hier ist ein Bild von der Tabelle, mit der ich arbeite.UITest Farbe eines Etiketts (nicht UI-Etikett)

enter image description here

Ich versuche nur die Farbe "angefordert" zu erhalten (grau) oder "Entwurf" (orange). Ich bin in der Lage, die tatsächliche Zeichenfolge von „angefordert“ oder „Entwurf“ von

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

aber das ist nur eine Zeichenfolge zu bekommen und nicht ein UILabel (wenn es ein UILabel wäre, würde ich in der Lage label.textColor zu tun Ich glaube). Wie bekomme ich die Farbe dieser Saite, damit ich behaupten kann, dass sie tatsächlich grau oder orange ist?

+0

Natürlich ist es ein Label. Eine Zeichenkette kann nicht einfach magisch in der Schnittstelle erscheinen; es muss von einem Interface-Objekt gezeichnet werden. – matt

+0

@matt Oh, tut mir leid, ich habe vor ein paar Tagen damit begonnen, das neu zu lernen. Ich meinte, dass der Code in meiner Frage eine Zeichenfolge zurückgibt, kein UILabel, also denke ich, ich bin nur verwirrt, wie man das UILabel dieses Elements dazu bringt, damit zu arbeiten. – user3613290

+0

Sie müssen einen Komponententest für die Färbung des UILabel schreiben, wo Sie auf das Farbattribut des UILabel zugreifen können. – Oletha

Antwort

5

Ich fürchte, Sie werden nicht in der Lage sein, dies über UI-Tests zu tun. UI-Tests können die Benutzeroberfläche nur in dem Maße "sehen", wie es Accessibility darstellt. So können Sie den Text "sehen", aber Sie können nicht "sehen", dass dieses Ding ein UILabel ist; UI Testing weiß davon nichts. Somit kann man seine Natur nicht als UILabel erkunden.

0

Sie können die Farbe nicht direkt erhalten, aber wenn Sie Ihre Benutzeroberfläche testen müssen, um sicherzustellen, dass Ihre Beschriftungen richtig hervorgehoben werden, können Sie Ihre Zugänglichkeitsbeschriftung so einstellen, dass Informationen wie die Farbe oder die Tatsache, dass sie hervorgehoben ist, enthalten sind.

Dies wird auch die Benutzerfreundlichkeit der App verbessern, da sehbehinderte Benutzer die Farbe sowieso nicht sehen werden. Dann können Sie Tests schreiben, um sicherzustellen, dass mindestens das Accessibility-Label korrekt ist. Es besteht natürlich immer noch die Möglichkeit, dass der Entwickler die Label-Farbe grün und die Accessibility-Bezeichnung "gelb" macht, aber das ist ein generelles Risiko, die Barrierefreiheit zu verwenden, um UI-Elemente abzufragen.

Zum Beispiel in der App-Code:

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