当找不到对象时,UFT中的Exists方法会产生常规运行错误

问题描述 投票:1回答:2

我正在运行一个UFT脚本(在Windows 7机器上使用UFT 14.51),它有时会自行运行,有时被另一个脚本称为动作,因此在特定点上它可能会也可能没有特定的窗口打开。 (此脚本正在测试SAP GUI应用程序;它不是基于Web的。)

我已经尝试将对象名称直接放入Exists行,而不是使用Set oObject定义它。

我已经尝试将对象重新添加到存储库中。

代码如下所示:

Set sObject =  <repository object>
If sObject.Exist(1) Then
    ```do something```  
End if

如果指定的对象可见,则此代码有效。但是,如果不是,则不会跳过代码,程序会因一般运行错误而死亡。

qtp uft14
2个回答
0
投票

运行错误说的是什么?尝试将“If”语句包装为:On Error Resume Next If .... Then

结束如果'在这里检查是否Err.Description <>“”,它可能会暗示你出了什么问题。出错时转到0


0
投票

这取决于运行错误所说的内容。我可能是你没有正确识别对象。你在使用描述性编程吗?例如,如果您定义了一个对象,例如Java Button,则在引用它时,您必须提供拉动路径。所以:

Set sObject =  JavaWindow("the window").JavaButton(<repository object>)
If sObject.Exist(1) Then
    ```do something```  
End If

如果这不起作用,您可以向对象添加Eval。所以:

Set sObject =  JavaWindow("the window").JavaButton(<repository object>)
If Eval(sObject).Exist(1) Then
    ```do something```  
End If
© www.soinside.com 2019 - 2024. All rights reserved.