2016-06-10 34 views
6

Oto rysunek tabeli, z którą pracuję.UITest kolor etykiety (nie etykiety UI)

enter image description here

Po prostu staram się uzyskać kolor „wniosek” (szary) lub „projekt” (pomarańczowy). Jestem w stanie uzyskać rzeczywiste ciąg „wniosek” lub „draft” przez

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

ale jest to po prostu ciąg, a nie UILabel (jeśli były UILabel byłbym w stanie zrobić label.textColor Wierzę). Jak mogę uzyskać kolor tego łańcucha, aby móc stwierdzić, że jest on rzeczywiście szary lub pomarańczowy?

+0

Oczywiście jest to etykieta. Ciąg nie może po prostu magicznie pokazać się w interfejsie; musi zostać narysowany przez jakiś obiekt interfejsu. – matt

+0

@matt O, przepraszam Zacząłem się uczyć od początku, od kilku dni. Miałem na myśli, że kod w moim pytaniu zwraca ciąg znaków, a nie UILabel, więc domyślam się, że jestem po prostu zdezorientowany, jak uzyskać UILabel tego elementu do pracy z nim. – user3613290

+0

Będziesz musiał napisać test jednostkowy na kolorowanie UILabel, gdzie będziesz mógł uzyskać dostęp do atrybutu koloru UILabel. – Oletha

Odpowiedz

5

Obawiam się, że nie uda się tego zrobić za pomocą testów interfejsu użytkownika. Testowanie interfejsu użytkownika może "widzieć" interfejs tylko w takim zakresie, w jakim udostępnia go dostępność. W ten sposób można "zobaczyć" tekst, ale nie można "zobaczyć", że to jest UILabel; Testowanie interfejsu użytkownika nic o tym nie wie. W ten sposób nie można odkryć jego natury jako UILabel.

0

Nie można uzyskać koloru bezpośrednio, ale jeśli musisz przetestować interfejs użytkownika, aby upewnić się, że etykiety są odpowiednio podświetlone, możesz ustawić etykietę dostępności tak, aby zawierała informacje takie jak kolor lub fakt, że jest podświetlona.

Poprawi to również użyteczność aplikacji, ponieważ użytkownicy niewidomi i tak nie zobaczą jej koloru. Następnie możesz napisać testy, aby upewnić się, że przynajmniej etykieta dostępności jest poprawna. Oczywiście nadal istnieje możliwość, że programista sprawi, że kolor etykiety będzie zielony, a etykieta dostępności "żółta", ale jest to ogólne ryzyko związane z używaniem elementów zapytań UI.

Na przykład, w kodzie aplikacji:

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