在QTP中使用childobjects时一般运行错误--2147467259

时间:2015-08-01 06:20:02

标签: qtp child-objects

我正在尝试打印页面上显示的所有链接的名称。我写了以下代码 - >

SystemUtil.Run "Chrome.exe","www.timesofindia.com"
Dim obj, objects,objectnames,i
Set obj = Description.Create
obj("micclass").value = "Link"
objects = Browser("micclass:=browser").Page("micclass:=Page").ChildObjects(obj)
MsgBox Err.number
For i = 0 To obj.Count-1 Step 1
    childnames = objects.getROProperty("innertext")
    print childnames(i)
Next

我在第objects = Browser("micclass:=browser").Page("micclass:=Page").ChildObjects(obj)

中遇到一般运行错误

MsgBox Err.number提供错误编号-2147467259

我试图找出错误编号的原因 - 2147467259,但没有得到任何相关答案。请帮忙。

2 个答案:

答案 0 :(得分:1)

您的脚本存在一些问题

  • 您需要Set个对象,因为这是一个对象
  • For循环中,您应该循环objects.count而非obj.count
  • For正文中,您应该使用objects(i).GetROProperty(您忘记使用i编号索引)
  • Print声明中,您无缘无故地将childnames编入索引

进行这些更改之后,脚本对我有用,但它有点慢,如果您仍然遇到问题,可能是UFT在等待所有链接显示时超时。如果是这种情况,您可以将查询分成几个查询(例如,innertext以字母表中的每个字母开头)并依次运行它们。

SystemUtil.Run "Chrome.exe","www.timesofindia.com"
Dim obj, objects,objectnames,i
Set obj = Description.Create
obj("micclass").value = "Link"
Set objects = Browser("micclass:=browser").Page("micclass:=Page").ChildObjects(obj)
If Err.Number <> 0 Then
    MsgBox "Error: " & Err.number   
End If

Print "Count " & objects.Count
For i = 0 To objects.Count-1 Step 1
    childnames = objects(i).getROProperty("innertext")
    print childnames
Next

答案 1 :(得分:0)

我遇到了同样的问题并解决了使用错误恢复下一个声明

On error resume next
Set desc = description.Create
desc("micClass").value = "WebElement"
set WElementobj = browser("creationtime:=0").page("title:=.*").ChildObjects(desc)
msgbox welementobj.count
For i = 0 to welementobj.count-1
    print welementobj(i).getroproperty("innertext")
Next

出现此问题的原因是因为并非所有对象都具有innertext属性。