object – .Exist超时如何在QTP中工作?

我已经使用了.Exist方法了很多,但我最近搬到了一个新项目(现在使用
WPF应用程序)和QTP 11(而之前我有QTP 10).

现在,我想通过使用object.Exist(2)来检查消息是否存在.奇怪的是,我只在~23秒后得到一个结果,而不是我期待的2秒.

超时如何工作?在以前的项目中,使用object.Exist(2)会在确定对象不存在之前等待2秒. QTP帮助文件还说它应该只等待2秒(指定的超时参数).
现在,似乎它正在等待超时参数(2秒)和对象同步超时(20秒).

此外,智能标识已禁用,因此不应等待.使用对象存储库突出显示对象会立即说明该对象不存在.

QTP v10和v11之间的超时行为是否已更改?
为什么说对象不存在需要这么长时间?

最佳答案 Exist方法不适用于最后一个对象.

它按层次结构工作 – 这意味着此方法在检查最后一个父对象之前检查每个父对象.

超时仅适用于最后一个对象.

如果你想立即收到答案,我建议你使用以下代码 –

if WPFWindow("x").Exist(0) Then
   if WPFWindow("x").WPFButton("y").Exist(0) Then
     'action 
   End if
End if
点赞