QTP - 如果对象存在于对象存储库中

时间:2012-11-01 20:32:24

标签: vbscript qtp

在QTP中,代码中有任何方法可以检查对象存储库中是否存在特定对象。我尝试了以下代码:

If JavaWindow(className).JavaDialog(dialogName).Exist Then
    doThisStuff
Else
    doThisStuffInstead
End If

但是从我从Internets中发现的内容来看,这类似于isVisible方法,只有当指定的对象当前可见时才会生成true。当我使用上面的代码时,我收到“在对象存储库中找不到JavaDialog对象”。是否有方法或任何方法来防止这种错误并检查对象是否确实存在?

感谢您的时间

2 个答案:

答案 0 :(得分:3)

我不确定你在这里要做什么,通常在使用之前知道对象存储库中是否存在对象。通常怀疑是否在AUT(被测试中)中存在相应的控制。

如果你真的遇到有时候对象在存储库中的情况,有时它不是(我可以想到有几种方法可以实现,但没有一个有意义),那么你可以使用VBScript的{{3 }}。

On Error Resume Next ' Turn off error handling
' Just check if object is in repository, there's no need to do anything with it
Dim Exists: Exists=JavaWindow(className).JavaDialog(dialogName).Exist
If Err.Number <> 0 Then
    doThisStuff 'Exists is still empty
Else
    doThisStuffInstead ' Exists is properly set
End If
On Error Goto 0 ' Resume regular error handling

答案 1 :(得分:0)

因此,从您得到的错误中,出现的对话框与您存储在存储库中的对话框不同,或者您没有。 你检查过它真的存在于存储库中吗?您可以尝试只找到此元素按钮。 使用“如果对象不在存储库中 - 跳过步骤”的方法并不是一个好主意。 1.如果对象未保存在存储库中,您为什么要跳过测试/部分测试? 2.如果不存在,那么你需要确保存储它。

我认为这个“缺失”对象可能有一些值,它与存储库中的对象匹配,不同于测试。您可以通过手动设置QTP定位它的值来调整“匹配”机制。

相关问题