关于ios:UI测试Xcode 7-无法访问子视图中的元素

UI Testing Xcode 7- can't access element within subview

我正在尝试访问子视图中的元素,但发现无法这样做。

层次结构为:

视图控制器:

  • 看法

    • 临时视图
    • userEnterView

      • zipCodeEntered

我想访问zipCodeEntered文本字段。我上面有一个名为" zipCodeEntered "的可访问性标签。

当我尝试记录自动化时,它仅注册超级视图" userEnterView ",而不注册我可以访问的实际文本字段。

我打印" app.otherElements [SUPER_VIEW_NAME] .debugDescription ",以查看该层次结构中的元素,但不打印任何元素。

关于为什么我无法访问这些元素/如何访问它们的任何想法?
enter


由于父视图不是容器视图,因此无法访问子视图。来自《辅助功能编程指南》中的``使您的iOS应用可访问''部分:

From the perspective of accessibility, a custom view is either an individual view or a container view. An individual view does not contain any other views that need to be accessible.

A container view, on the other hand, contains other elements with which users can interact.

要使子视图可访问,父视图应通过从-isAccessibilityElement返回NO并实现UIAccessibilityContainer协议的方法来告诉UIAccessibility它??是一个可访问性容器。


为我修复的问题是选中√在Interface Builder中启用了" Accessibility "框。

enter


我在UITableView中也遇到了此问题。我的单元格有一个containerView(UIView),它具有子视图(TextView,UIButton ...)和一个包含其单元格的collectionView。

我尝试了接受的答案,但是没有用。(UI记录器或手动代码无法识别我的子元素)。但是有时我发现,当我触发刷新表的操作时,UITest突然认出了我的子元素。

所以现在我知道UITest是否找不到子视图,我调用tableView.reloadData刷新视图,然后所有问题都消失了。

无论如何,这只是一种解决方法,我希望Apple能够尽快对其进行修复。