51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2568|回复: 6
打印 上一主题 下一主题

[原创] QTP中参数化checkbox问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-4-12 14:21:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想实现成每次运行时,checkbox都可以随机的选择一个或者多个,期待前辈指导!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-4-12 15:41:06 | 只看该作者
此处应该使用到描述性编程。
具体例子:
Set desc = Description.Create()
desc("type").Value = "checkbox"
Set checkboxCollection =Browser("").Page("").Frame("").WebTable("").ChildObjects(desc) Num=checkboxCollection.count
For j=0 to Num-1
If checkboxCollection(j).GetROProperty("checked") Then
         checkboxCollection(j).set "OFF"
else
         checkboxCollection(j).set "ON"
End If
Next
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2015-10-19 13:26
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    3#
    发表于 2011-4-12 16:45:08 | 只看该作者
    此处应该使用到描述性编程。
    具体例子:
    Set desc = Description.Create()
    desc("type").Value = "check ...
    superliming 发表于 2011-4-12 15:41


    取完count要用Randomize()取下随机数吧?
    Randomize()
    Num= int((Num-1)*Rnd()+1)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2011-4-13 10:02:51 | 只看该作者
    回复 2# superliming 感谢前辈的指教,目前初步可以达到我想要的目的,不过还有些地方要请教下前辈
    问题1.如下图在执行代码的过程中发现第二个划线的checkbox可能有没被选上的情况,这个怎么处理
    问题2.对于第一个问题我想用描述性编程锁定下图第一个划线的checkbox 代码desc("name").value="releasetargetid[]" 但是在If checkboxCollection(j).GetROProperty("checked") Then此处报错
    问题3.在没得到回复之前我试过这个方法(只针对第一行划线的checkbox)
    Dim boxNu,i
    'randomize
    'boxNu=int(rnd*3+1)
    'For i=1 to boxNu
    'Browser("").Page("").Frame("myframe").WebCheckBox("releasetargetid[]").SetTOProperty"value",i
    'Browser("").Page("").Frame("myframe").WebCheckBox("releasetargetid[]").Set "on"
    'Next
    只能选择第一个
    O(∩_∩)O~问题有点多,期待回复!!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2011-4-13 10:05:57 | 只看该作者
    本帖最后由 liuyuling2496 于 2011-4-13 11:28 编辑

    回复 3# kavensyw
    1到NUM 取随机值 Num= int((Num-1)*Rnd()+1)与Num= int(Num*Rnd()+1) 有什么不同呢?
    还有我把上边的代码又改了一下
    Set desc = Description.Create()
    desc("type").Value = "checkbox"
    desc("name").value="releasetargetid[]"
    Set checkboxCollection =Browser("").Page("").Frame("myframe").WebElement("product_brand").ChildObjects(desc)
    Num=checkboxCollection.count
    为什么Num取不到值呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2011-4-13 11:05:08 | 只看该作者
    If checkboxCollection(j).GetROProperty("checked") = 0 表示没有勾选,1 表示勾选了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-10-19 13:26
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    7#
    发表于 2011-4-13 13:06:56 | 只看该作者
    本帖最后由 kavensyw 于 2011-4-13 13:19 编辑

    不知道这个是不是你要的逻辑,
    把CheckBox分成两组:发售对象和投资品种。
    针对每一组使用下面逻辑,具体对象怎么识别,
    看checkbox的html id,一般每组都有自己的识别符的

    每组选取逻辑如下:


    1. Dim Sales1,Sales2,Sales3  '勾选标志,为0表示不勾选
    2. Dim selectedSales      '必选标志:为1表示有勾选的,为0表示组内都没勾选
    3. Sales1=0
    4. Sales2=0
    5. Sales3=0
    6. selectedSales= Sales1 or Sales2 or Sales3
    7. 'Sales组内的CheckBox均初始化为OFF,也可以不用一个个设
    8. 'checkBox1.set "Off"
    9. 'checkBox2.set "Off"
    10. 'checkBox3.set "Off"
    11. '这儿可以顺便检查一下有没有红字提示符

    12. '随机选择:如果都没选,则重新选择
    13. Do while selectedSales=0
    14. Sales1= RandomNumber(0,1)
    15. Sales2= RandomNumber(0,1)
    16. Sales3= RandomNumber(0,1)
    17. selectedSales= Sales1 or Sales2 or Sales3
    18. Loop

    19. If Sales1=1 Then
    20. MsgBox "Set sales1 on"
    21. End If
    22. If Sales2=1 Then
    23. MsgBox "Set sales2 on"
    24. End If
    25. If Sales3=1 Then
    26. MsgBox "Set sales3 on"
    27. End If
    复制代码
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 13:08 , Processed in 0.075309 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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