0

我正在使用UIAutomation.

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()都会等待一段时间以查看是否会出现左侧 UINavigationBar 项。

是否有替代功能或替代实现可以让我确定元素是否存在而没有这种强制超时?

4

1 回答 1

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();
}
于 2013-09-12T15:15:23.607 回答