Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.UITest:检索从屏幕隐藏的元素_Xamarin_Xamarin.uitest - Fatal编程技术网

Xamarin.UITest:检索从屏幕隐藏的元素

Xamarin.UITest:检索从屏幕隐藏的元素,xamarin,xamarin.uitest,Xamarin,Xamarin.uitest,我想为我的Xamarin.iOS应用程序编写一个UI测试,以确保屏幕上存在所有tableview元素/单元格。我可以使用app.Query(e=>e.All()),但这将只检索当前在屏幕上可见的元素。是否有一种方法可以检索所有元素(包括隐藏在视图中的元素),以便在不启动滚动操作的情况下断言检索到的元素符合预期 非常感谢您的任何建议。没有直接的方法,但是有一些方法可以向下滚动列表视图以获取更多项目,但是原始项目将从可视化树中删除 表视图使用单元格循环,因此它们只创建足够的单元格来填充屏幕。滚动时,

我想为我的Xamarin.iOS应用程序编写一个UI测试,以确保屏幕上存在所有tableview元素/单元格。我可以使用app.Query(e=>e.All()),但这将只检索当前在屏幕上可见的元素。是否有一种方法可以检索所有元素(包括隐藏在视图中的元素),以便在不启动滚动操作的情况下断言检索到的元素符合预期


非常感谢您的任何建议。

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

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


在过去,我通过获取项目和缓存一些值、滚动、获取更多项目、滚动等方式来完成这项工作,并在运行时建立项目列表。一旦不再滚动,检查值。

您指的是可见性设置为false的项目,还是除非用户滚动视图,否则尚未显示在相关视图的可视区域中的项目。是,我说的是,除非用户向下滚动到下一批元素,否则项目还没有显示在视图的可视区域中。大多数TableView、ListView、recyclerviews等。。在用户实际滚动之前,不会创建这些元素。对于出于内存和性能原因而使用回收器模式的视图而言,屏幕上显示的视图将被重复使用,并且仅使用这些单元格、子视图等中的数据元素。。因此,数据源中的每个项都不存在单独的单元格/子视图。测试数据源中的每一项并不是基于UI的测试的真正目的…感谢您的回复。但理想情况下,我仍然希望在将新视图推送到堆栈时验证是否存在正确的元素,谢谢您的回复。到目前为止,我就是这样做的。只是想知道是否有更直接/更快的方法。对于一个更大的列表来说似乎有点低效。更新了我的答案,解释了为什么不可能