一尘不染

XCUIElement-获取图像值

swift

我有一个类型.Image和类的变量XCUIElement。像这样:

var image = app.descendantsMatchingType(.Image).elementAtIndex(0)

有什么方法可以提取实际图像,以便将其与其他图像进行比较?

我尝试过校准该value方法,但是它返回一个字符串。将其强制转换为UIImage总是失败。


阅读 241

收藏
2020-07-07

共1个答案

一尘不染

最近,我与Apple Developer
Tools传播者进行了一次对话。当前无法从图像视图,按钮等访问实际图像。类似地,无法访问可能感兴趣的视图的其他属性,例如“ isHidden”或“
attributedText”等。告诉UI测试团队的工程师对人们想要访问这些属性的用例感兴趣,因此这对他们和其他想要此功能的人都是非常有用的在https://bugreport.apple.com上提交错误报告/功能请求

作为有关XCUIElement上“ value”属性的提示,至少到目前为止,这似乎映射到XCUIElement所引用的任何视图的“
accessibilityValue”属性。因此,如果将您感兴趣的视图的accessibilityValue设置为包含您感兴趣的某些验证信息,那么这可能会有助于测试。不过要注意两件事:

1)即使XCUIElement的“值”属性的类型为“ id”,accessibilityValue属性的类型也为“
NSString”。我不知道如果您尝试将一些非字符串值(例如图像)强制进入accessibilityValue,然后尝试从XCUIElement的“
value”属性中检索它,那会怎样,但是我怀疑它不能很好地工作。部分原因是:

2)苹果的VoiceOver功能实际上将视图的accessibilityValue属性用于视力受损的人。设置该值后,当用户点击该元素时,它将大声读出(这就是为什么它应该是字符串)的原因。

我还解决了无法通过XCUIElement访问视图属性的问题:http://www.danielhall.io/exploring-the-new-ui-
testing-features-of-xcode-7

2020-07-07