51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5361|回复: 11
打印 上一主题 下一主题

[资料] 如何使用WebTable 的ChildItem

[复制链接]
  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2009-6-18 18:05:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    不知道朋友们在使用WebTable 的ChildItem时遇到过麻烦?我是有过,曾经有一段使用拒绝使用ChildItem函数(当然是怕出错了),然后使用别的方法来代替。今天帮同事解决一个脚本的通用性时,终于把此问题解决了。
        根据WebElement 处在WebTable 的行数Row和列数Column,可以使用GetCellData(Row, Column)可以得到需要的数据,可是使用ChildItem (Row, Column, “WebElement”, 0)时就得不到需要的Object呢?
        例如下面的代码
              Set obj = Browser("***").Page("***").Frame("Frame").WebTable("***").ChildItem(4,2,"WebElement",0)
            Print obj.GetROProperty ("outerhtml")
        可是却得不到我们需要的outerhtml的值。如果改变了Row和Column的值,我们经常又会得到一个错误 Object required, 这说明obj 没有返回值。
    后来查阅QTP Help,发现WebTable有一个ChildItemCount 方法,于是我使用ChildItemCount (Row, Column, “WebElement”) 得到在的行数Row和列数Column上有多少个WebElement。 然后使用下面的代码验证,如果使用ChildItem (Row, Column, MicClass, Index), 我们需要操作的Object的Index的值到底是多少:
    For inter = 0 To Browser("***").Page("***").Frame("Frame").WebTable("***").ChildItemCount (Row, Column, “WebElement”) - 1
    Set obj = Browser("***").Page("***").Frame("Frame").WebTable("***").ChildItem(4,2,"WebElement", inter)
            Print obj.GetROProperty ("outerhtml")
    Next
        当然,对于ChildItem函数里面的Row和 Column的值,一般情况下,使用GetCellData(Row, Column)里面的Row和 Column就可以得到。

        这样我们就可以通过ChildItem 得到WebTable里面所有的Object,不需要添加大量的Object,脚本的通用性自然就增强了。

    [ 本帖最后由 walker1020 于 2009-6-18 18:11 编辑 ]
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2018-5-15 18:25
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2014-7-8 13:22:29 | 只看该作者
    up
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    10#
    发表于 2009-6-25 21:26:35 | 只看该作者
    学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
     楼主| 发表于 2009-6-19 10:56:08 | 只看该作者
    最后还是说一句,如果你遇到了问题,可以先查阅 QTP Help。如果里面有说明,那么无疑你的问题就不难解决了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
     楼主| 发表于 2009-6-19 10:43:02 | 只看该作者
    如果使用ChildItemCount(Row, Column, MicClass)得到的返回值是0, 那么说明我们写的ChildItemCount里的某一个或某几个参数有误(类型错误或参数的值有错误)。 一般不会写错MicClass 的值(注意不要漏掉双引号)。因此最大的可能是Row的 Column 的1取值有误。 我们可以使用RowCount 方法得到 WebTable 的总行数,然后使用ColumnCount 函数得到WebTable 某行的列数。最后遍历循环每一行和每一列,看看到底Row的 Column 分别取什么值才能得到我们需要进行操作的数据。
        注意:ColumnCount 后面必须要加一个表示行号的参数,因为在一个WebTable 里面,不同的行可能有不同的列数(如最后一行只有2列,前面所有的行都有4列)。

    [ 本帖最后由 walker1020 于 2009-6-19 10:44 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
     楼主| 发表于 2009-6-19 10:33:02 | 只看该作者
    使用GetCellData(Row, Column)里面的Row和 Column,  对ChildItem (Row, Column, MicClass,0) 进行操作时,如果出现不了我们期望的结果,这说明最后一个参数的值不能是0.。我就遇到了这样的情况,使用ChildItemCount (Row, Column, “WebElement”) 得到的值是4,只有使用ChildItem (Row, Column, “WebElement”,2)  才可以得到我要的人结果。当然,如果使用ChildItemCount (Row, Column, MicClass)得到的返回值是1,那么 ChildItem 的值只能是0 了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2009-6-18 18:28:54 | 只看该作者

    回复 5# 的帖子

    恩,好的,谢谢啦
    反应好快啊 果然是版主 赫赫
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2009-6-18 18:26:15 | 只看该作者
    原帖由 lijinshui 于 2009-6-18 18:10 发表
    我现在一直都用的CS结构
    一直也没有用过这个属性
    我一直用Object来取好多属性值 和方法
    可以说下两者之间的关系不

    对象的 大多数属性都可以通过 GetROProperty得到。不过有些只能通过Object来取好多属性值 和方法,因为GetROProperty没有封装对象的所有方法,特别是有些用户自定义的方法和属性。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2009-6-18 18:14:22 | 只看该作者
    ChildItem 和hildItemCount 是 WbfGrid 。WebTable 等的方法,不是所有类型的对象都有此方法。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2009-6-18 18:10:11 | 只看该作者
    我现在一直都用的CS结构
    一直也没有用过这个属性
    我一直用Object来取好多属性值 和方法
    可以说下两者之间的关系不
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2009-6-18 18:07:40 | 只看该作者
    经验阿
    不错
    丁一下
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-10 23:01 , Processed in 0.079204 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表