UITest color of a label (not UI label)

好久不见. 提交于 2019-12-08 15:44:49

问题


Here is a pic of the table I'm working with.

I'm just trying to get the color of "requested" (gray) or "draft" (orange). I'm able to get the actual string of "requested" or "draft" by

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

but this is just a string and not a UIlabel (if it were a UILabel I would be able to do label.textColor I believe). How do I get the color of this string so I can assert that it is indeed gray or orange?


回答1:


I'm afraid you're not going to be able to do this via UI Testing. UI Testing can "see" the interface only to the extent that Accessibility exposes it. Thus you can "see" the text but you cannot "see" that this thing is a UILabel; UI Testing knows nothing of that. Thus you cannot explore its nature as a UILabel.




回答2:


You can't get the color directly, but if you need to test your UI to make sure your labels are highlighted properly you can set your accessibility label to include information such as the color or the fact that it is highlighted.

This will also improve the usability of the app, since visually impaired users won't see the color anyway. Then you can write tests to ensure that at least the accessibility label is correct. There is of course still the possibility that the developer makes the label color green and the accessibility label "yellow", but that is a general risk of using accessibility to query UI elements.

For example, in your app code:

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



来源:https://stackoverflow.com/questions/37754696/uitest-color-of-a-label-not-ui-label

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!