首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UI测试Xcode 7-无法访问子视图中的元素

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

Stack Overflow用户
提问于 2015-09-26 19:43:46
回答 3查看 10.9K关注 0票数 21

我试图访问子视图中的一个元素,但我发现这样做是不可能的。

等级制度是:

视图主计长:

  • 视图
    • tempView
    • userEnterView
      • zipCodeEntered

我想访问zipCodeEntered文本字段。我在它上有一个可访问性标签,名为"zipCodeEntered“。

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

我打印"app.otherElementsSUPER_VIEW_NAME.debugDescription“以查看该层次结构中有哪些元素,而它没有打印任何元素。

对于为什么我不能访问这些元素/如何访问它们,有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-02 17:53:32

无法访问子视图,因为父视图不是容器视图。来自可访问性编程指南中的使您的iOS应用程序可访问一节:

从可访问性的角度来看,自定义视图要么是单个视图,要么是容器视图。单个视图不包含任何其他需要访问的视图。 另一方面,容器视图包含用户可以与之交互的其他元素。

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

票数 35
EN

Stack Overflow用户

发布于 2019-01-15 17:59:29

为我修复它的是检查√接口生成器中启用的“可访问性”框。

如果不能在IB中工作,请尝试将视图的isAccessibilityElement属性设置为true。

希望这能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2016-06-25 21:43:41

我在我的UITableView中也遇到了这个问题。我的单元格有一个containerView(UIView),它有子视图(TextView,UIButton.)和一个带有细胞的collectionView。

我尝试了接受的答案,但它没有工作。(UI记录器或手动代码不识别我的子元素)。但有时,当我触发一些刷新表的内容时,我发现UITest突然认出了我的子元素。

所以现在我知道如果tableView.reloadData无法找到我的子视图,我会调用来刷新视图,然后所有的问题都解决了。

无论如何,这只是一个解决办法,我希望苹果能够尽快修复它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32801267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档