1

我想为我的 Xamarin.iOS 应用程序编写一个 UI 测试,以确保所有 tableview 元素/单元格都存在于屏幕上。我可以使用 app.Query(e => e.All()),但这只会检索当前在屏幕上可见的元素。有没有办法检索所有元素(包括从视图中隐藏的元素)以断言检索到的元素与预期的一样,而无需启动滚动操作?

非常感谢任何建议。

4

1 回答 1

1

没有办法直接做到这一点,但有一些方法可以向下滚动列表视图以获取更多项目,但原始的项目将从可视化树中删除。

表格视图使用单元格回收,因此它们只创建足够的单元格来填满屏幕。当您滚动从顶部滚动的单元格时,将被“回收”并在底部显示新数据。这意味着 screen 的单元格实际上不存在 - 因此 UI 测试无法访问任何内容。

我过去通过获取项目并缓存一些值、滚动、获取更多项目、滚动等来完成它,并在我去的时候建立一个项目列表。然后一旦不再滚动,检查值。

于 2017-03-27T20:43:18.277 回答