我使用以下代码突出显示浏览器实例(仅存在1个浏览器实例)
Browser("CreationTime:=-1").highlight
有时,代码会突出显示唯一可用的浏览器实例,而有时它会显示“找不到对象”。我已经阅读了由tarun lalwani拔掉的QTP,如果存在1个浏览器实例,那么Browser("CreationTime:=-1").exist(5)
将返回true。请告诉我这里做错了什么或理解错误。
如果只有一个浏览器实例,我正在尝试执行某些操作。
答案 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
每种方法的优缺点:
ThereIsOneBrowser
将等待对象识别超时,因此速度较慢Desktop.ChildObjects
是否知道如何与移动中心(MC)进行互动,因此,如果您有时会测试移动设备,这可能会给您错误的结果如果你没有测试手机,我会选择NumberOfBrowsers
。