小丫头amy 发表于 2012-12-10 17:17:21

【已解决】qtp webtable.childitem 建立虚拟子对象后提示对象不存在

本帖最后由 黑羽祭 于 2012-12-12 11:25 编辑

目的,进入51个人空间管理中,搜索内容,如果有搜索到对应的内容,则在选挚的勾选框
代码如下:
with Browser("个人空间管理").Page("个人空间管理")
rowcount=.WebTable("标题").RowCount
msgbox rowcount
columncout=.WebTable("标题").ColumnCount(1)
msgbox columncout
end with
For row=0 to rowcount-1
celldata=Browser("个人空间管理").Page("个人空间管理").WebTable("标题").GetCellData(row+1,2)

For i=1 to 2
   Select Case i
   Case 1
         searchchar1="excel导入错误"
         return=instr(1,celldata,searchar1)
   If return<>0 Then
         set oWebCheckBox =Browser("个人空间管理").Page("个人空间管理").WebTable("标题").ChildItem(row+1, 1, "WebCheckBox", 0)
         oWebCheckBox.set"on"         
Set oWebCheckBox=nothing
         Exit for
   End If

   Case 2
         searchchar2="qtp参数化报错"
            return=instr(1,celldata,searchar2)
               If return<>0 Then
          set oWebCheckBox= Browser("个人空间管理").Page("个人空间管理").WebTable("标题").ChildItem(row+1,1,"WebCheckBox",0)
         oWebCheckBox.set"on"
         Set oWebCheckBox=nothing
         Exit for
         end if
   End Select
next
Next

但是oWebCheckBox.set"on"
一直提示无该对象?这个是什么原因呢?

黑羽祭 发表于 2012-12-11 09:34:11

回复 1# 小丫头amy


    大概看上去
set oWebCheckBox =Browser("个人空间管理").Page("个人空间管理").WebTable("标题").ChildItem(row+1, 1, "WebCheckBox", 0)
oWebCheckBox.set "on"         
Set oWebCheckBox=nothing
这部分没什么问题啊。
检查下符号(不要用中文符号)啊,空格啊什么的看看
实在不行脚本发我邮箱,我帮你再看看
cydblack@163.com

joykao 发表于 2012-12-11 10:57:20

set oWebCheckBox =Browser("个人空间管理").Page("个人空间管理").WebTable("标题").ChildItem(row+1, 1, "WebCheckBox", 0)
         oWebCheckBox.set"on"

貌似oWebCheckBox 返回的应该是个集合吧。。。。你把集合set on 不靠谱吧。。。。。

泰然 发表于 2012-12-11 11:52:09

楼上正确。

看帮助,ChildItem Returns the collection of child objects contained within the object.

ChildItem这个方法返回一个子对象集。哪怕这个子对象集中只有1个对象,你也要用.item(0)来表示子对象集中的第一个对象。

小丫头amy 发表于 2012-12-11 14:26:28

回复 4# 泰然


    采用这种objecet.item(i) 还是会报缺少对象的错误

黑羽祭 发表于 2012-12-11 14:54:15

回复 1# 小丫头amy


    已解决,上代码:'''获取行和列
With Browser("个人空间管理").Page("个人空间管理")
      rowcount=.WebTable("标题").RowCount
      msgbox "行数 = " & rowcount
      columncout=.WebTable("标题").ColumnCount(1)
      msgbox "列数 = " & columncout
End With


For row=0 to rowcount-1
      celldata=Browser("个人空间管理").Page("个人空间管理").WebTable("标题").GetCellData(row+1,2)
      
      For i=1 to 2
                Select Case i
                        Case 1
                              searchar1="excel导入错误"
                              return=instr(1,celldata,searchar1)
                              If return<>0 Then
                                        set oWebCheckBox =Browser("个人空间管理").Page("个人空间管理").WebTable("标题").ChildItem(row+1, 1, "WebCheckBox", 0)
                                        oWebCheckBox.set"on"
                                        Set oWebCheckBox=nothing
                                        Exit for
                              End If
               
                        Case 2
                              searchar2="qtp参数化报错"
                              return=instr(1,celldata,searchar2)
                              If return<>0 Then
                                        set oWebCheckBox= Browser("个人空间管理").Page("个人空间管理").WebTable("标题").ChildItem(row+1,1,"WebCheckBox",0)
                                        oWebCheckBox.set"on"
                                        Set oWebCheckBox=nothing
                                        Exit for
                              End if
                End Select
      Next
Next

你的问题在
searchchar1="excel导入错误"
return=instr(1,celldata,searchar1)

这句子,上面的变量searchchar1(注意有两个ch),到了下面searchar1(只有一组ch)了。
要不是我一行一行调下来,真是不容易发现。
粗心啊~

黑羽祭 发表于 2012-12-11 14:58:11

回复 3# joykao


    ChildItem(row+1, 1, "WebCheckBox", 0)
得到的是子集,但是,这句的最后一个参数0,等同于index:=0,所以就能确定下是哪一个了

黑羽祭 发表于 2012-12-11 14:58:41

回复 4# 泰然


      ChildItem(row+1, 1, "WebCheckBox", 0)
得到的是子集,但是,这句的最后一个参数0,等同于index:=0,所以就能确定下是哪一个了

joykao 发表于 2012-12-11 15:39:52

回复 7# 黑羽祭

开始么有看清楚,判断比较下来是单个的元素,语法么有错误,楼主把我给玩了哇,,变量名字前后不一致。。。。。;P

小丫头amy 发表于 2012-12-11 17:10:08

回复 9# joykao


    粗心了,谢谢!!
页: [1]
查看完整版本: 【已解决】qtp webtable.childitem 建立虚拟子对象后提示对象不存在