Mda*_*daG 13 javascript ios xcode4 ios-ui-automation
我试图访问value()的UIAStaticText(一个UILabel在客观C代码)JavaScript对象.我可以设置好的值setValue(),我可以确认模拟器更新文本,但当我尝试获取值时,我只能得到null.
即
text.setValue("new text");
Run Code Online (Sandbox Code Playgroud)
将标签更新为模拟器中的"新文本".
text.value()
Run Code Online (Sandbox Code Playgroud)
null在设置值后仍然返回.
我在这做错了什么?
小智 15
看起来问题的根源在于返回的accessibilityValue属性,而不是应该的文本.要解决此问题,我在自定义类别中覆盖属性.UILabelaccessibilityLabelUILabelaccessibilityValueUILabel
@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
Run Code Online (Sandbox Code Playgroud)
除了这个小技巧,我总是尝试使用辅助功能标识符而不是辅助功能标签来准备我的UI元素以进行自动化测试.查看" 仪器新功能用户指南 "的"辅助功能标签和标识符属性"部分.
Jon*_*man 12
经过几个小时的搜索和尝试后,我在O'Reilly Answers上发现了这一点,确认有一个错误,你无法使用Apple的UIAutomation框架获得静态文本标签的值.这是引用:
UILabel的文本标签字符串显示为StaticText字段的名称,而不是它的值,它始终为nil.如果设置"辅助功能"标签,它将成为名称属性,并且无法再以任何方式发现UILabel中的当前文本.我有一个与Apple公开的错误报告.
| 归档时间: |
|
| 查看次数: |
6441 次 |
| 最近记录: |