我想为我的Xamarin.iOS应用编写一个UI测试,以确保屏幕上存在所有tableview元素/单元格。我可以使用app.Query(e => e.All()),但这只会检索当前在屏幕上可见的元素。有没有办法检索所有元素(包括视图中隐藏的元素),以断言检索到的元素是否符合预期,而不启动滚动操作?
非常感谢任何建议。
答案 0 :(得分:1)
没有办法直接执行此操作,但有一些方法可以向下滚动列表视图以获取更多项目,但原始项目将从可视树中删除。
表视图使用单元格回收,因此它们仅创建足够的单元格来填充屏幕。滚动顶部时滚动的单元格被“回收”,并在底部显示新数据。这意味着屏幕的单元格实际上不存在 - 因此UI测试无法访问任何内容。
我过去通过获取项目和缓存一些值,滚动,获取更多项目,滚动等,在我去的时候建立项目列表来完成它。然后,一旦没有更多要滚动,检查值。