XCUITest-单击“后退”按钮后,除了睡眠以外我还能使用什么在屏幕上查找项目?

问题描述

我们有多个iOS XCUITests,都为其单击了后退按钮。单击此按钮后,我们将在测试中执行其他操作(取决于测试,许多操作)。但是,在我们应用程序的某些屏幕上,无论下一步是什么(单击另一个按钮,声明等),除非使用睡眠,否则测试将失败。似乎测试没有在等待下一个屏幕完成其工作。这可能是绘制ui元素,正在运行的后台项目等。当我添加5秒钟的睡眠时,测试就可以了,并且可以毫无问题地继续完成。在自动化方面,据我了解,睡眠并不理想,应尽可能避免睡眠。另外,我相信XCUITests具有一些内置的等待时间来等待元素。但是,在这种情况下,如果没有睡眠,则测试将失败。

因此,为了改善自动化测试,除了睡眠以进行诸如单击后退按钮这样的屏幕转换外,我们还可以尝试一些建议吗?

解决方法

您可以等待新屏幕上的元素出现,也可以等待上一个屏幕上的元素消失。

使用newElement.waitForExistence(timeout: 5)

previousElement.waitForDisappearance(timeout: 5)

https://github.com/devexperts/screenobject这里抢waitForDisappearance