如何检查iOS gui自动化中的元素属性?

我见过的所有UI自动化示例都使用标准组件,可以使用value()方法通过JavaScript API检查其状态。 这是有点限制。 比方说,你想检查颜色或alpha值和whatnot。

我如何检查视图的属性?

一个例子:点击某个元素应该使其“被选中”。 我想对它执行一次轻敲,然后validationisSelected是TRUE。

更新:

我发现了理论上应该做的withPredicate()方法,除了它似乎只触发name属性:

 element.withPredicate("isSelected == YES") // always fails element.withPredicate("name matches 'my element'") // works 

我结束了这个方法适用于我的目的:

让UIView.accessibilityValue返回一个带有相关属性的JSONstring:

 - (NSString *)accessibilityValue { return [NSString stringWithFormat: @"{'alpha':%f, 'isSelected':%@}", self.alpha, self.isSelected ? @"true" : @"false"]; } 

然后在testing代码中使用eval()并检查这些属性。 value()是调用accessibilityValue的简写forms:

 var props = eval("(" + element.value() + ")"); if (props.isSelected) { UIALogger.logFail("Should not be selected"); } UIATarget.localTarget().tap({"x":471, "y":337}); var props = eval("(" + element.value() + ")"); if (!props.isSelected) { UIALogger.logFail("Should be selected"); }