UFT描述性编程浏览器(“creationtime:= - 1”)并不总是有效

时间:2017-01-19 18:55:53

标签: qtp

我使用以下代码突出显示浏览器实例(仅存在1个浏览器实例)

Browser("CreationTime:=-1").highlight

有时,代码会突出显示唯一可用的浏览器实例,而有时它会显示“找不到对象”。我已经阅读了由tarun lalwani拔掉的QTP,如果存在1个浏览器实例,那么Browser("CreationTime:=-1").exist(5)将返回true。请告诉我这里做错了什么或理解错误。

如果只有一个浏览器实例,我正在尝试执行某些操作。

2 个答案:

答案 0 :(得分:2)

如果您只有一个浏览器实例打开, CreationTime 0 而不是 1 < / strong>从 0 开始。

因此,如果您有两个浏览器实例而不是第一个打开浏览器,则CreationTime将为0,第二个打开浏览器的CreationTime将为1.

答案 1 :(得分:2)

CreationTime属性是选择器,仅当描述的其余部分不唯一时才使用选择器。这意味着如果只有一个浏览器,QTP / UFT将不会查看您指定的CreationTime,也不会关心您提供的值是无效的(CreationTime应该是非负整数) 。

一旦有多个浏览器(如果您认为只有一个浏览器,或者您或QTP都被误认为......)QTP将查看选择器并看到它具有无效值并告诉您没有找到对象。

我没有看到使用此说明的重点,如果您认为只存在一个浏览器,那么更合乎逻辑的说明将是"micclass:=Browser",这样您就会收到信息错误(对象不是当QTP找不到对象时,唯一/找到。

修改

如果您想检测是否只有一个浏览器,您可以通过两种不同的方式进行操作。

Public Function ThereIsOneBrowser
       On Error Resume Next
       Browser("title:=.*").GetROProperty "title"
       If Err Then
            ThereIsOneBrowser = False
       Else               
            ThereIsOneBrowser = True
       End If
       On Error Goto 0 ' Cancel On Error Resume next
End Function

Public Function NumberOfBrowsers
    Set desc = Description.Create()
    desc("micclass").Value = "Browser"
    NumberOfBrowsers = Desktop.ChildObjects(desc).Count
End Function

每种方法的优缺点:

    如果没有浏览器(默认为20秒),
  • ThereIsOneBrowser将等待对象识别超时,因此速度较慢
  • 我不确定Desktop.ChildObjects是否知道如何与移动中心(MC)进行互动,因此,如果您有时会测试移动设备,这可能会给您错误的结果

如果你没有测试手机,我会选择NumberOfBrowsers