51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2772|回复: 14
打印 上一主题 下一主题

[原创] 【在线等待】如何进行多选

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-5-13 13:40:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、我想通过下面的循环语句连续4次进行对象类别是WebElement的多选,但运行过程中,每次单击,都会将上次的勾选取消,只勾选当前点击的。
2、通过手动点击webtable的每一行的第一列,是可以实现多选的,不过点击其他列确实会取消上一次勾选的。但我下面的脚本ChildItem (1,1,"WebElement",0)也是选中的是第一列啊,为什么会不能实现多选呢
Dim i
For i=35 to 38
    Set oDesc = Description.Create()
    oDesc("class").Value = "x-grid3-row-table"
    oDesc("index").Value = i
        set a=Browser("Centerm Management System").Page("Centerm Management System").WebTable(oDesc).ChildItem (1,1,"WebElement",0)
        a.click
Next
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-5-13 13:53:54 | 只看该作者
ChildItem (1,1,"WebElement",0)

每次都点1行1列,不取消那才怪了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-5-13 14:02:24 | 只看该作者

回复 2# 的帖子

因为我这个系统webtable不是作为独立一个整体,而是每一行都作为一个单独的webtable。所以你看我前面的循环语句,是分别选择4个不同的webtable(每个webtable只有1行,有3列),通过运行,系统也在4个webtable的第一行第一列进行选中,目前的问题是,无法多选
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-5-13 14:33:32 | 只看该作者
index这种属性只能靠调试、打日志了
长什么样也不知道,帮不了你了。。。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2010-5-13 14:47:41 | 只看该作者

    一种简单的方法(实际项目中用过)

    '首先将任意一个需要勾选的对象的上级WebTable添加到对象库,然后以下代码可实现循序点击index为35到38的对象
    '假设添加进来的对象的上级WebTable为:WebTable("35"),则:
    For i=35 to 38
    Browser("Centerm Management System").Page("Centerm Management System").WebTable("35").SetTOProperty("index",i)
    Browser("Centerm Management System").Page("Centerm Management System").WebTable("35").ChildItem (1,1,"WebElement",0).click
    Next

    '附:具体操作:
    '添加上级WebTable对象的方法,按CTRL+R,点击“+”按钮,点击需要勾选的对象,点击上级的WebTable,点击OK

    [ 本帖最后由 feiyunkai 于 2010-5-13 15:07 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2010-5-13 15:16:31 | 只看该作者

    回复 5# 的帖子

    Browser("Centerm Management System").Page("Centerm Management System").WebTable("35").SetTOProperty("index",i)  -----这句用意是什么
    另外,我目前这个系统存在一个问题,就是无法将webtable添加到对象库,所以我都采用描述性编程
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2010-5-13 15:26:28 | 只看该作者

    采用描述性编程,可以使用以下代码

    '修改对象的index属性,作用等同于你代码中的oDesc("index").Value = i
    '另外,QTP只要能识别的对象就可以添加到对象库,上一个回复已经附加了添加方法:打开对象库,点击“+”按钮,点击你需要勾选的对象,(后面这个步骤是重点)在弹出的Object selection-add to repository中选择WebTable,这样这个WebTable就添加到对象库了,除非Object selection中没有那个对象
    '采用描述性编程,可以使用以下代码
    For i=35 to 38
    Browser("Centerm Management System").Page("Centerm Management System").WebTable("class:=x-grid3-row-table","index:="&i).ChildItem (1,1,"WebElement",0).click
    Next

    [ 本帖最后由 feiyunkai 于 2010-5-13 15:36 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2010-5-13 15:29:53 | 只看该作者

    回复 7# 的帖子

    我有用过你这种方式,但还是每次选中都会把上次的取消
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2010-5-13 15:33:44 | 只看该作者

    回复 7# 的帖子

    另外,想再请教你,你也看到我选中webtable,是通过class和index,class属性比较稳定不会变化,但index目前我是通过数它处于第几个这样确定的,有没有更好的方式来定位我想要的webtable
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2010-5-13 15:36:44 | 只看该作者
    试试onfocus
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2010-5-13 15:42:06 | 只看该作者

    回复 10# 的帖子

    onfocus事件也无效
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2010-5-13 15:49:21 | 只看该作者
    原帖由 zoujufei 于 2010-5-13 15:33 发表
    另外,想再请教你,你也看到我选中webtable,是通过class和index,class属性比较稳定不会变化,但index目前我是通过数它处于第几个这样确定的,有没有更好的方式来定位我想要的webtable


    '我知道的方法有2个:
    '方法一:添加新属性,不过这个方法不太易用,需要把每个属性相同的对象都添加一个新属性
    '方法二、循环查找(我的项目中就用了这种方法),利用单元格内容确定所需要勾选的复选框,例:
    Dim row,maxrow
    maxrow=Browser("***").Page("***").WebTable("***").RowCount  '获取WebTable最大行数
    For row=2 to maxrow
    a=Browser("***").Page("***").WebTable("***").GetCellData(row,2)  '假设第2列的单元格内容,用于区分是否勾选
    If a="值" Then      '设置勾选条件
    Browser("***").Page("***").WebTable("***").ChildItem(row,1,"webcheckbox",0).click  '勾选第一列的复选框
    End If
    Next
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-5-13 15:52:34 | 只看该作者
    用a.highlight看看你每次是否都定位到那个对象
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2010-5-13 16:05:21 | 只看该作者

    回复 12# 的帖子

    根据单元格内容确实可以找到我想要的那一行,但问题是单元格内容很容易 变化,无法保证在脚本运行时也还是这样的内容。所以目前我通过index,但index又经常会变动,因为当前的webtable是一个子对话框,它的父对话框又有很多class属性相同的webtable。目前,我没有很好的办法来区分父界面和子界面的webtable,只能通过index
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-5-14 10:50:31 | 只看该作者
    每操作一下。。highlight调试一下。。。多数是index规则没找到,每次操作后可能会变
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 08:15 , Processed in 0.076346 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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