“对象无法识别”或“对象不可见”在QTP中运行错误?

时间:2014-03-10 19:39:59

标签: vbscript qtp

当我运行脚本时,无法识别或无法看到WinObj。

但是当我单击出现的错误消息框中的“调试”按钮,然后打开对象存储库并在应用程序中突出显示 WinObj时,WinObj会突出显示。当我恢复运行我的脚本时,脚本运行良好 - 错误不再发生。

如何防止此错误发生?

更新: 我的代码大致如下:

    Public Function getText( winObjObject, textArray )
        Dim textHolder
        textHolder = winObjObject.GetVisibleText() '' this is where the error occurs
        textArray = Split(textHolder, vbCrLf)
    End Function

3 个答案:

答案 0 :(得分:0)

要获得更具体的答案,我需要查看一些代码。可能有一千个原因导致这种情况发生。但作为一种解决方法,您可以通过转移到手动错误处理来防止错误发生。

听起来你正在让应用程序执行错误处理,所以要移过它,在你的函数/子/代码段的顶部,设置“On Error Resume Next”并手动执行错误处理。有关如何正确处理错误的更多信息,请查看以下链接。

Link 1 Link 2 Link 3

答案 1 :(得分:0)

难以查明导致问题的根本原因,但您可以在获取文本之前尝试再次同步或初始化对象:

Public Function getText( winObjObject, textArray )
    Dim textHolder

    winObjObject.Sync()   ' Synchronizes the object i.e. wait until it is ready
    winObjObject.Init()   ' Re-initializes the object 

    textHolder = winObjObject.GetVisibleText() '' this is where the error occurs
    textArray = Split(textHolder, vbCrLf)
End Function

你必须使用这两种方法来看看哪种方法有效 注意:由于我来自Web测试,我不知道sync是否也是WinObjects上的方法。

答案 2 :(得分:0)

我的问题的解决方案是在调用getText()函数之前“重新设置”对象。

在代码中:

Set winObjObject = Browser("MyBrowser").Page("MyPage").WinObject("MyWinObject")
getText( winObjObject, textArray )
相关问题