0

伙计们帮助我了解超时的用法。该文档给出了很多关于它们的信息:

popTimeout- Retrieves the previous timeout value from a stack, restores it as the current timeout value, and returns it.

pushTimeout - Stores the current timeout value on a stack and sets a new timeout value.

他们还提供了一些代码:

target = UIATarget.localTarget();

target.pushTimeout(2);
    // attempt element access
target.popTimeout();

但我不完全了解如何以及何时使用它们。任何人都可以举个例子吗?

4

1 回答 1

1

在自动化测试期间,某些元素可能不会立即变得可见。因此仪器使用超时(默认 5 秒)来等待请求的元素。他们称之为宽限期。

有时默认的宽限期可能不是您所需要的,因此您可以将超时更改为更短或更长的值。使用 pushTimeout 和 popTimeout 可以确保在调用 popTimeout 后恢复之前的宽限期,而无需记住之前的宽限期。

例如:在我的一个测试中,我不想等待弹出框激活,但我只想知道是否有弹出框激活,如果有则关闭它:

target.pushTimeout(0.0);

if ( target.isDeviceiPad() && ! isNull( popOver= app.mainWindow().popover() ) )
{
    UIALogger.logDebug(" dismiss popup by tapping somewhere");
    popOver.dismiss();
    target.delay(0.2);
}
target.popTimeout();

顺便说一句, isNull() 是我制作的自定义函数,但您可能了解发生了什么。

于 2013-03-23T12:31:30.313 回答