2016-06-10 5 views
6

다음은 내가 작업중인 테이블의 그림입니다. 레이블의 UITest 색상 (UI 레이블이 아님)

enter image description here

난 그냥 (회색) 또는 "초안"(오렌지) "요청"의 색상을 얻기 위해 노력하고있어. 그것은 UILabel의라면 내가 label.textColor을 할 수있을 것이다 (나는

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

에 의해 "요청"또는 "초안"의 실제 문자열을 얻을 수 있어요 그러나 이것은 단지 문자열이 아닌 UILabel의입니다 나는 믿는다). 이 문자열의 색을 어떻게 얻을 수있어서 실제로 회색이거나 오렌지색이라고 주장 할 수 있습니까?

+0

는 레이블입니다. 문자열은 마술처럼 인터페이스에 나타날 수 없습니다. 그것은 어떤 인터페이스 객체에 의해 그려 져야한다. – matt

+0

@matt 오, 죄송합니다. 저는 며칠 전에 처음부터 이것을 배우기 시작했습니다. 내 질문에있는 코드는 UILabel이 아닌 문자열을 반환하므로이 요소의 UILabel을 사용하는 방법을 혼동하는 것 같습니다. – user3613290

+0

UILabel의 색상 속성에 액세스 할 수있는 UILabel의 색상 지정을위한 단위 테스트를 작성해야합니다. – Oletha

답변

5

UI 테스팅을 통해이 작업을 수행 할 수 없을지 걱정됩니다. UI 테스트는 내게 필요한 기능이 노출하는 범위까지만 인터페이스를 "볼"수 있습니다. 따라서 텍스트를 "볼"수는 있지만이 것을 UILabel이라고 "볼"수는 없습니다. UI 테스팅은 그 사실을 전혀 모른다. 따라서 당신은 UILabel로서의 본질을 탐색 할 수 없습니다.

0

색상을 직접 가져올 수는 없지만 사용자 인터페이스를 테스트하여 레이블이 올바르게 강조 표시되도록하려면 색상이나 강조 표시된 것과 같은 정보를 포함하도록 접근성 레이블을 설정할 수 있습니다.

시각 장애가있는 사용자는 색상을 볼 수 없으므로 앱의 유용성도 향상됩니다. 그런 다음 적어도 접근성 레이블이 올바른지 확인하기위한 테스트를 작성할 수 있습니다. 물론 개발자가 레이블 색상을 녹색으로, 접근성 레이블을 "노란색"으로 만들 가능성은 있지만 UI 요소를 쿼리 할 때 액세스 가능성을 사용하는 일반적인 위험이 있습니다. 앱 코드의 예를 들어

는 : 물론

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