我正在使用UIAutomation
为iOS应用编写集成测试。
作为测试套件的一部分,我已经整合了一个重置功能,只要它存在,就会通过点击左UINavigationBar
项将应用程序返回到主菜单。
这是用于执行此操作的代码(用tuneup.js编写):
function reset (app) {
// While we have a left button on the nav bar, tap it.
// This effectively resets our app
while(app.mainWindow().navigationBars()[0].leftButton().isValid()) {
app.mainWindow().navigationBars()[0].leftButton().tap();
}
}
它的目的就在于它。
但是,如果isValid()
无法立即找到对象,isValid()
将等待几秒钟。因此,集成测试的运行速度非常慢,因为每次重置后我们都会点击主菜单,{{1}}将等待一段时间,看看是否会出现左UINavigationBar项目。
是否存在替代函数或替代实现,以便在没有强制超时的情况下确定元素是否存在?
答案 0 :(得分:1)
您可以使用以下命令将默认超时覆盖为0
UIATarget.localTarget().pushTimeout(timeoutInSeconds);
然而,在0超时的时间周期内检查验证似乎不是一个好主意。
function reset (app) {
// While we have a left button on the nav bar, tap it.
// This effectively resets our app
UIATarget.localTarget().pushTimeout(0);
if (app.mainWindow().navigationBars()[0].leftButton().isValid()) {
app.mainWindow().navigationBars()[0].leftButton().tap();
}
UIATarget.localTarget().popTimeout();
}