【发布时间】:2017-03-28 06:45:09
【问题描述】:
我想为我的 Xamarin.iOS 应用程序编写一个 UI 测试,以确保所有 tableview 元素/单元格都存在于屏幕上。我可以使用 app.Query(e => e.All()),但这只会检索当前在屏幕上可见的元素。有没有办法检索所有元素(包括从视图中隐藏的元素)以断言检索到的元素符合预期,而无需启动滚动操作?
非常感谢任何建议。
【问题讨论】:
-
您是在谈论其可见性设置为 false 的项目还是在相关视图的可视区域中尚未呈现的项目,除非用户滚动视图。
-
是的,我说的是除非用户向下滚动到下一个“批次”元素,否则项目还没有出现在视图的可视区域中。
-
大多数 tableviews、listviews、recyclerviews 等在用户实际滚动之前不会创建这些元素。就出于内存和性能原因使用回收器模式的视图而言,屏幕上存在的视图被重新使用,并且仅这些单元格、子视图等中的数据元素被更新,因此单个单元格/子视图确实如此不 存在于数据源中的每个项目中。对数据源中的每个项目进行测试并不是基于 UI 的测试的真正意图...
-
感谢您的回复。但理想情况下,当新视图被推送到堆栈时,我仍然想验证正确的元素是否按预期存在。