检查点验证对象不存在
Checkpoint Validate non existence of Object
我们正在使用 UFT 14.52 测试 GUI。对于每个 Popup、Schema、View,我们都有一个组件。我想为每个组件添加验证点,这样我就可以验证应用程序是否处于正确状态。
例如:
我确实有这个 Popup 和一个处理 Popup 的组件(选择街道,然后单击按钮)。
组件启动时,我想验证弹出窗口是否已启动。使用 UFT 检查点,通过使用启用作为标识,这可以完美地工作。
但是如果我想在末尾有一个验证点(通过启用检查弹出窗口是否关闭)我确实得到了预期的 "object not found exception from uft",因为给定的弹出窗口已关闭。通过 JavaObject.Exist(5)
验证对象不存在是不可行的,因为它实际上会等待超时,然后 return 状态。
有什么解决方法吗?有没有类似javaObject.NonExists(5)
的东西?最后这个状态验证有用吗?
需要注意的一件事是 Exist
的超时参数不默认为零,因此如果您希望它立即 return 如果对象不存在,您应该使用obj.Exist(0)
.
如果我的理解是正确的,你想模仿 Exist
的行为,这样如果条件失败(对象 does 在这种情况下存在)那么函数不会立即 return False
而是等待超时以使其变为 True
(对象 not 存在)。
如果是这样你可以试试这个:
Public Function NotExist(ByRef test_object, ByVal timeout)
Deadline = DateAdd("s", timeout, Now)
While test_object.Exist(0)
If DateDiff("s", Now, Deadline) < 0 Then
NotExist = False
Exit Function
End If
test_object.RefreshObject ' not sure if this is needed
Wend
NotExist = True
End Function
RegisterUserFunc "JavaObject", "NotExist", "NotExist"
这里唯一微妙的部分是我认为需要的 RefreshObject
但是当我用 Web addin 尝试它时它没有它工作(我不使用Java)。
我认为应该需要它,因为 UFT 会在找到对象时缓存该对象,但也许 Exist
会清除此缓存(进一步阅读此 caching mechanism)。
我们正在使用 UFT 14.52 测试 GUI。对于每个 Popup、Schema、View,我们都有一个组件。我想为每个组件添加验证点,这样我就可以验证应用程序是否处于正确状态。
例如: 我确实有这个 Popup 和一个处理 Popup 的组件(选择街道,然后单击按钮)。
组件启动时,我想验证弹出窗口是否已启动。使用 UFT 检查点,通过使用启用作为标识,这可以完美地工作。
但是如果我想在末尾有一个验证点(通过启用检查弹出窗口是否关闭)我确实得到了预期的 "object not found exception from uft",因为给定的弹出窗口已关闭。通过 JavaObject.Exist(5)
验证对象不存在是不可行的,因为它实际上会等待超时,然后 return 状态。
有什么解决方法吗?有没有类似javaObject.NonExists(5)
的东西?最后这个状态验证有用吗?
需要注意的一件事是 Exist
的超时参数不默认为零,因此如果您希望它立即 return 如果对象不存在,您应该使用obj.Exist(0)
.
如果我的理解是正确的,你想模仿 Exist
的行为,这样如果条件失败(对象 does 在这种情况下存在)那么函数不会立即 return False
而是等待超时以使其变为 True
(对象 not 存在)。
如果是这样你可以试试这个:
Public Function NotExist(ByRef test_object, ByVal timeout)
Deadline = DateAdd("s", timeout, Now)
While test_object.Exist(0)
If DateDiff("s", Now, Deadline) < 0 Then
NotExist = False
Exit Function
End If
test_object.RefreshObject ' not sure if this is needed
Wend
NotExist = True
End Function
RegisterUserFunc "JavaObject", "NotExist", "NotExist"
这里唯一微妙的部分是我认为需要的 RefreshObject
但是当我用 Web addin 尝试它时它没有它工作(我不使用Java)。
我认为应该需要它,因为 UFT 会在找到对象时缓存该对象,但也许 Exist
会清除此缓存(进一步阅读此 caching mechanism)。