如何处理回收清单

时间:2018-09-24 11:41:20

标签: xcode-ui-testing xcuitest

我正在使用XCUITest api为iOS应用构建UI测试套件。该应用程序使用回收列表,我需要在测试期间访问这些列表的特定单元,如以下代码所示:

let cells: XCUIElementQuery = app.descendants(matching: XCUIElement.ElementType.any).matching(identifier: "cells_accessibility_id") let cell: XCUIElement = cells.element(boundBy: index) cell.tap()

我的问题是,由于这是一个回收列表,因此在测试过程中以任何原因滚动(如动画)时,单元将被卸载,“单元”将不会返回所有项目,然后“索引”将不会返回从列表中获取正确的单元格或超出范围。

是否有另一种方法可以检索整个列表,而不管元素的可见性如何?还是我必须更改测试/尝试其他方法?

1 个答案:

答案 0 :(得分:0)

您不能像您指出的那样依赖可重用单元的索引,但是通常有一种方法可以消除对必须在某些索引下测试单元的依赖。解决方案将取决于您要测试的内容,但是这里有一些可能的替代策略:

  • 如果表单元格始终相同,则可以根据其内容为每个单元格分配一个硬编码的标识符。
  • 如果表单元格中包含动态内容,则可以对每个测试使用存根测试数据来进行测试,以便屏幕上只有一个单元格(与测试相关的一个单元格)。
  • 如果您可以通过该单元格中包含的视图来标识所需的单元格,则可以在选择每个单元格之前先搜索相关视图,而不必依赖其索引。