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

seb*_*off 19 xcode ios xcode7 swift2 xcode-ui-testing

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

层次结构是:

查看控制器:

  • 视图
    • tempView
    • userEnterView
      • zipCodeEntered

我想访问zipCodeEntered文本字段.我有一个名为"zipCodeEntered"的辅助功能标签.

当我尝试记录自动化时,它只注册superview"userEnterView"而不是我可以访问的实际文本字段.

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

关于为什么我无法访问这些元素/我如何访问它们的任何想法? 在此输入图像描述

que*_*ish 31

子视图无法访问,因为父视图不是容器视图.从" 辅助功能编程指南"中的" 使iOS应用程序可访问"一节中:

从可访问性的角度来看,自定义视图是单个视图或容器视图.单个视图不包含任何其他需要访问的视图.

另一方面,容器视图包含用户可以与之交互的其他元素.

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

  • 谢谢!这正是问题所在.有两种方法可以实现这一目标.1)取消选中我拥有的所有视图元素的辅助功能.2)以编程方式,在视图控制器中使用特定的视图出口来编写`viewOutletVariable.isAccessibilityElement = false`. (4认同)