伙计帮助我了解超时使用情况。该文档提供了很多关于它们的文字:
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();
但我并不完全明白如何以及何时使用它们。 anybode可以举个例子吗?
答案 0 :(得分: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()是我自己制作的一个自定义函数,但你可能已经了解了发生了什么。