51Testing软件测试论坛

标题: QTP中参数化checkbox问题 [打印本页]

作者: liuyuling2496    时间: 2011-4-12 14:21
标题: QTP中参数化checkbox问题
想实现成每次运行时,checkbox都可以随机的选择一个或者多个,期待前辈指导!!
作者: superliming    时间: 2011-4-12 15:41
此处应该使用到描述性编程。
具体例子:
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
作者: kavensyw    时间: 2011-4-12 16:45
此处应该使用到描述性编程。
具体例子:
Set desc = Description.Create()
desc("type").Value = "check ...
superliming 发表于 2011-4-12 15:41


取完count要用Randomize()取下随机数吧?
Randomize()
Num= int((Num-1)*Rnd()+1)
作者: liuyuling2496    时间: 2011-4-13 10:02
回复 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~问题有点多,期待回复!!
作者: liuyuling2496    时间: 2011-4-13 10:05
本帖最后由 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取不到值呢
作者: xieyang702    时间: 2011-4-13 11:05
If checkboxCollection(j).GetROProperty("checked") = 0 表示没有勾选,1 表示勾选了
作者: kavensyw    时间: 2011-4-13 13:06
本帖最后由 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
复制代码





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2