我是iOS UIAutomation的新手,这是我面临的问题

我有一个如下的 View 层次结构,并且想访问自动化sctipt中的CustomView2元素

UIWindow> UIScrollView> CustomView1(多个)> CustomView2(多个)

滚动 View 具有类型CustomView1的 subview ,而CustomView1依次具有类型CustomView2的 subview 。

我已将可访问性信息分配给层次结构中的所有 View ,但无法访问自动化脚本中的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的实例

P.S.我需要访问CustomView1和CustomView2元素

最佳答案

如果您还没有找到答案,这可能会对您有所帮助:

UIAutomation Nested Accessibilty Elements Disappear from Hierarchy

在您的CustomView1类中,实现以下内容:

- (BOOL)isAccessibilityElement
{
    return NO;
}

当logElementTree()时,这将使您的CustomView2元素可见。

如果CustomView2包含可访问元素,并且基本上也是一个容器 View ,则也可以在该类中实现上述内容,并且其 subview 将变得可访问。

关于iOS UIAutomation : Accessing custom subviews added on a UIScrollView in automation script,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7834119/

10-15 11:56