iOS UIAutomation:访问在自动化脚本中添加到 UIScrollView 上的自定义子视图
Posted
技术标签:
【中文标题】iOS UIAutomation:访问在自动化脚本中添加到 UIScrollView 上的自定义子视图【英文标题】:iOS UIAutomation : Accessing custom subviews added on a UIScrollView in automation script 【发布时间】:2011-10-20 09:51:15 【问题描述】:我对 ios UIAutomation 很陌生,这是我面临的问题
我有一个如下视图层次结构,并希望访问自动化脚本中的 CustomView2 元素
UIWindow > UIScrollView > CustomView1(多个)> CustomView2(多个)
滚动视图具有 CustomView1 类型的子视图,而 CustomView1 又具有 CustomView2 类型的子视图。
我已将可访问性信息分配给层次结构中的所有视图,但我无法访问自动化脚本中的 CustomView2 元素。
当我在 UIScrollView 上执行 logElementTree() 时,我得到的只是 CustomView2 的实例,CustomView2 甚至不在 UIWindow 的树结构中。
如果有什么遗漏或有什么问题,请提出建议。
这是我正在使用的代码
var mainWindow = application.mainWindow();
var scrollView = mainWindow.scrollViews()[0];
var custom1 = scrollView.elements().withName("CustomView1");
for(var index=0; index<custom1.length; index++)
currentIndustry.tap();
custom1[index].logElementTree();
var custom2 = custom1[index].elements().withName("CustomView2");
UIALogger.logPass("Custom2 Length : " + custom2.length);
打印的树 custom1[index].logElementTree(); 不包含 CustomView2 的实例
附:我需要同时访问 CustomView1 和 CustomView2 元素
【问题讨论】:
我也有类似的问题。试试我的问答:***.com/questions/6751566/… 感谢@JackyBoy 的参考。这确实部分解决了问题,我需要同时访问 CustomView1 和 CustomView2,通过删除 CustomView1 的可访问性显然我失去了对 CustomView1 的访问权限。 【参考方案1】:如果您还没有找到答案,这可能会对您有所帮助:
UIAutomation Nested Accessibilty Elements Disappear from Hierarchy
在您的 CustomView1 类中实现以下内容:
- (BOOL)isAccessibilityElement
return NO;
这将使您的 CustomView2 元素在您 logElementTree() 时可见。
如果 CustomView2 包含可访问元素并且基本上也是一个容器视图,那么在该类中也实现上述内容,它的子视图将变得可访问。
【讨论】:
以上是关于iOS UIAutomation:访问在自动化脚本中添加到 UIScrollView 上的自定义子视图的主要内容,如果未能解决你的问题,请参考以下文章
尝试在具有 IOS 8 和 Xcode 6 UIAutomation 的设备上运行脚本时出错