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

use*_*290 10 user-interface ui-testing ios swift xcode-ui-testing

这是我正在使用的表的图片.

在此输入图像描述

我只想尝试"请求"(灰色)或"草稿"(橙色)的颜色.我能够得到"请求"或"草稿"的实际字符串

var timeSheetStatus = 
    app.tables.element.cells.elementBoundByIndex(0).staticTexts.elementBoundByIndex(1).label
Run Code Online (Sandbox Code Playgroud)

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

mat*_*att 10

我担心你无法通过UI测试做到这一点.UI测试只能在"可访问性"公开它的范围内"查看"界面.因此,你可以"看到"文本,但你不能"看到"这个东西是UILabel; UI Testing对此一无所知.因此,你无法探索它作为UILabel的本质.


Chr*_*ett 5

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

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

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

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

  • 当然,您必须小心一点,因为 VoiceOver 用户最终可能会听到您的辅助功能标签。你不想在那里放任何你不想公开的东西。 (2认同)