QTP中参数化checkbox问题
想实现成每次运行时,checkbox都可以随机的选择一个或者多个,期待前辈指导!! 此处应该使用到描述性编程。具体例子:
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 此处应该使用到描述性编程。
具体例子:
Set desc = Description.Create()
desc("type").Value = "check ...
superliming 发表于 2011-4-12 15:41 http://bbs.51testing.com/images/common/back.gif
取完count要用Randomize()取下随机数吧?
Randomize()
Num= int((Num-1)*Rnd()+1) 回复 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 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取不到值呢 If checkboxCollection(j).GetROProperty("checked") = 0 表示没有勾选,1 表示勾选了 本帖最后由 kavensyw 于 2011-4-13 13:19 编辑
不知道这个是不是你要的逻辑,
把CheckBox分成两组:发售对象和投资品种。
针对每一组使用下面逻辑,具体对象怎么识别,
看checkbox的html id,一般每组都有自己的识别符的
每组选取逻辑如下:
Dim Sales1,Sales2,Sales3'勾选标志,为0表示不勾选
Dim selectedSales '必选标志:为1表示有勾选的,为0表示组内都没勾选
Sales1=0
Sales2=0
Sales3=0
selectedSales= Sales1 or Sales2 or Sales3
'Sales组内的CheckBox均初始化为OFF,也可以不用一个个设
'checkBox1.set "Off"
'checkBox2.set "Off"
'checkBox3.set "Off"
'这儿可以顺便检查一下有没有红字提示符
'随机选择:如果都没选,则重新选择
Do while selectedSales=0
Sales1= RandomNumber(0,1)
Sales2= RandomNumber(0,1)
Sales3= RandomNumber(0,1)
selectedSales= Sales1 or Sales2 or Sales3
Loop
If Sales1=1 Then
MsgBox "Set sales1 on"
End If
If Sales2=1 Then
MsgBox "Set sales2 on"
End If
If Sales3=1 Then
MsgBox "Set sales3 on"
End If
页:
[1]