XCTest - 如何处理列表的滚动

XCTest - how to handle scrolling of list

我正在使用 xcode 8.3.3、swift 和 XCTest。我想知道当您计划 运行 针对多个模拟器进行测试并显示一个列表时,处理滚动的最佳方法是什么。由于屏幕大小可能会根据所使用的模拟器而变化,因此您想要 select 向上滚动的元素可能会显示也可能不会显示。

如果我有一个包含 x # 个元素的列表,我如何最好地处理使用哪个元素向上滚动列表以在屏幕上显示下一组元素,以便测试 运行 在不同屏幕尺寸的多个模拟器上?

当我们执行 "po XCUIApplication()" 时,我们会看到列表中的所有元素,因此为了知道哪个是最后显示在屏幕上的元素,我们必须查看每个元素并进行检查像 isDisplayed 或找到当前显示的最后一个元素的东西......但我希望有更好的方法?

如果在您执行 po XCUIApplication() 时显示了您要使用的元素,那么您应该能够 tap() 它而无需将其滚动到视图中。如果框架可以找到元素,它将自动处理滚动。

这是我写的一篇讨论如何使用 SBTUITestTunnel 进行滚动的文章:

https://rlukasik.medium.com/using-sbtuitesttunnel-for-scrolling-in-xcuitests-2e166440ca73