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

时间:2016-06-10 18:09:22

标签: ios swift user-interface xcode-ui-testing ui-testing

这是我正在使用的表格的图片。

enter image description here

我只是想获得“请求”(灰色)或“草稿”(橙色)的颜色。我可以通过

获得“请求”或“草稿”的实际字符串
var timeSheetStatus = 
    app.tables.element.cells.elementBoundByIndex(0).staticTexts.elementBoundByIndex(1).label

但这只是一个字符串而不是UIlabel(如果它是UILabel我可以做label.textColor我相信)。如何获得此字符串的颜色,以便我可以断言它确实是灰色或橙色?

2 个答案:

答案 0 :(得分:9)

我担心你无法通过UI测试做到这一点。 UI测试可以"看"接口仅在可访问性公开它的范围内。因此,你可以看到"文字,但你不能"看"这件事是UILabel; UI Testing对此一无所知。因此,你无法探索它作为UILabel的本质。

答案 1 :(得分:2)

您无法直接获取颜色,但如果您需要测试用户界面以确保标签正确突出显示,则可以将辅助功能标签设置为包含颜色或突出显示的事实等信息。

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

例如,在您的应用代码中:

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