UI 测试 Xcode 7- 无法访问子视图中的元素
UI Testing Xcode 7- can't access element within subview
我正在尝试访问子视图中的元素,但发现无法访问。
层次结构为:
视图控制器:
- 查看
- tempView
- userEnterView
- 已输入邮政编码
我想访问 zipCodeEntered 文本字段。我有一个名为 "zipCodeEntered" 的辅助功能标签。
当我尝试记录自动化时,它只注册了超级视图 "userEnterView" 而不是我可以点击的实际文本字段。
我打印 "app.otherElements[SUPER_VIEW_NAME].debugDescription" 以查看该层次结构中有哪些元素,它会打印 none。
关于为什么我无法访问这些内容的任何想法 elements/how 我可以访问它们吗?
子视图不可访问,因为父视图不是容器视图。来自辅助功能编程指南的 Making Your iOS App Accessible 部分:
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
它是一个可访问容器。
我在 UITableView 中也遇到了这个问题。我的单元格有一个 containerView(UIView),它有子视图(TextView, UIButton...) 和一个带有单元格的 collectionView。
我尝试了接受的答案,但没有用。(UI 记录器或手动代码无法识别我的子元素)。但有时我发现 UITest 在我触发刷新 table.
时突然识别出我的子元素
所以现在我知道如果 UITest 找不到我的子视图,我调用 tableView.reloadData
来刷新视图,然后所有问题都消失了。
无论如何,这只是一种解决方法,希望苹果能尽快修复。
为我修复它的是选中 √ "Accessibility" 框以在 Interface Builder 中启用。
如果不在 IB 中工作,请尝试将视图的 isAccessibilityElement
属性 设置为 true。
希望对您有所帮助!
我正在尝试访问子视图中的元素,但发现无法访问。
层次结构为:
视图控制器:
- 查看
- tempView
- userEnterView
- 已输入邮政编码
我想访问 zipCodeEntered 文本字段。我有一个名为 "zipCodeEntered" 的辅助功能标签。
当我尝试记录自动化时,它只注册了超级视图 "userEnterView" 而不是我可以点击的实际文本字段。
我打印 "app.otherElements[SUPER_VIEW_NAME].debugDescription" 以查看该层次结构中有哪些元素,它会打印 none。
关于为什么我无法访问这些内容的任何想法 elements/how 我可以访问它们吗?
子视图不可访问,因为父视图不是容器视图。来自辅助功能编程指南的 Making Your iOS App Accessible 部分:
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
它是一个可访问容器。
我在 UITableView 中也遇到了这个问题。我的单元格有一个 containerView(UIView),它有子视图(TextView, UIButton...) 和一个带有单元格的 collectionView。
我尝试了接受的答案,但没有用。(UI 记录器或手动代码无法识别我的子元素)。但有时我发现 UITest 在我触发刷新 table.
时突然识别出我的子元素所以现在我知道如果 UITest 找不到我的子视图,我调用 tableView.reloadData
来刷新视图,然后所有问题都消失了。
无论如何,这只是一种解决方法,希望苹果能尽快修复。
为我修复它的是选中 √ "Accessibility" 框以在 Interface Builder 中启用。
如果不在 IB 中工作,请尝试将视图的 isAccessibilityElement
属性 设置为 true。
希望对您有所帮助!