UITest标签颜色(不是UI标签)

问题描述:

以下是我正在使用的表格的图片。UITest标签颜色(不是UI标签)

enter image description here

我只是想获得的“要求”(灰色)或“草稿”(橙)色。我能够通过

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

获得的“要求”或“草案”的实际字符串但是这仅仅是一个字符串,而不是一个UILabel(如果它是一个UILabel我能做到label.textColor我相信)。我如何获得这个字符串的颜色,以便我可以断言它确实是灰色或橙色的?

+0

当然这是一个标签。一个字符串不能神奇地出现在界面中;它必须由一些接口对象来绘制。 – matt

+0

@matt对不起,我开始几天前从头开始了解这个。我的意思是我的问题中的代码返回一个字符串,而不是一个UILabel,所以我想我只是混淆了如何让这个元素的UILabel与它一起工作。 – user3613290

+0

您将需要为UILabel着色编写一个单元测试,您将能够访问UILabel的颜色属性。 – Oletha

恐怕你不会是能够通过用户界面测试来做到这一点。 UI测试只能在“辅助功能”公开的范围内“看到”界面。因此,你可以“看到”文本,但你不能“看到”这个东西是UILabel; UI测试对此一无所知。因此你不能将它的本质作为UILabel来探索。

不能直接获取颜色,但如果你需要测试你的UI,以确保您的标签正确突出显示,你可以设置你的无障碍标签包括诸如颜色或它强调了一个事实信息。

这也将提高应用程序的可用性,因为视觉障碍的用户将看不到颜色反正。然后,您可以编写测试以确保至少可访问性标签是正确的。当然,开发人员仍然有可能使标签颜色为绿色,并且可访问性标签为“黄色”,但这是使用查询UI元素的可访问性的一般风险。

例如,在您的应用程序代码:

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