其他测试框架 UIAutomation 获取 UIAStaticText 的值

severus · 2015年05月04日 · 最后由 severus 回复于 2015年05月04日 · 2309 次阅读

今天在编写测试脚本的时候需要通过 app 弹出的一个 UIAStaticText 进行下一步的判断,但老是获取不到它的 value,然后查了一下,分享一下解决办法:
http://stackoverflow.com/questions/7688311/cant-get-value-of-uiastatictext

interface UILabel (MyAccessibility)
@property(nonatomic, copy) NSString *accessibilityValue;
@end

@implementation UILabel (MyAccessibility)
@dynamic accessibilityValue;
-(NSString *) accessibilityValue {
// Here we force UIKit to return Label value, not the accessibility label
return self.text;
}
@end

加个 catagory

共收到 3 条回复 时间 点赞

谢谢分享!不过上面的代码看起来是 object-c 吧?能否把这段代码的详细用法说一下?否则后面想用也不知道怎么用了。
另外,麻烦按照论坛规范,使用代码块和添加头像吧。

重写了 accessibilityValue

interface UILabel (MyAccessibility)
@property(nonatomic, copy) NSString *accessibilityValue;
@end

@implementation UILabel (MyAccessibility)
@dynamic accessibilityValue;
-(NSString *)accessibilityValue {
// Here we force UIKit to return Label value, not the accessibility label 
return self.text;
}
@end

sorry,由于要赶回学校吃饭帖子发得比较急,现在补充一下:
这段 OC 代码当然不是测试脚本,而是要加在待测 app 上的 catagory,而此时 js 测试脚本就可以获取到 staticTexts 的 Value,例如:

var target = UIATarget.localTarget();
var succOrNot = target.frontMostApp().mainWindow().staticTexts()["your wish"].value();

不然,我自己就老是掉到 null object 这个坑里,这是我的解决办法,有什么其他好方法希望大家也告诉我一下哈。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册