cgy81223 发表于 2008-1-22 15:34:10

请问checkbox可以做随即选择吗?

请问checkbox可以做随即选择吗?应该怎么写呢。
高手请指点一下

jinsen 发表于 2008-1-22 16:16:56

请问楼主什么是"随即选择"?能不能举个例子?

cgy81223 发表于 2008-1-22 16:28:49

就是说每次运行的时候选择一个不同的checkbox对象。但是我现在先想知道怎么随即选择一个就可以,等到这个会了在考虑每次可以多个对象选择

jinsen 发表于 2008-1-22 16:50:44

Dim oDesc, tempObj, i '定义变量
set oDesc = Description.Create() '创建描述对象
oDesc("micclass").value = "WebCheckBox" '描述对象的类型为"WebCheckBox"
'把画面上所有的"WebCheckBox"控件筛选出来
set tempObj = Browser("xxx").Page("xxx").Frame("xxx").ChildObjects(oDesc)
if tempObj.count > 0 then '画面上是否存在"WebCheckBox"控件
   i = getRandomValue(tempObj.count)
   '对象是否可用并且没有被打勾
   if tempObj(i).GetROProperty("disabled") = 0 and tempObj(i).GetROProperty("checked") = 0 then
      tempObj(i).set On '对象打勾
   End if
End if

'**********************************
'取得随机数
'valFanWei:随机数的大小
'**********************************
Function getRandomValue(valFanWei)
   Dim RandomValue
   Randomize(Timer)
   RandomValue = Int((valFanWei * Rnd))
   getRandomValue = RandomValue
End Function

暗涧幽火 发表于 2008-1-23 11:49:42

不错啊,谢谢啊!

cgy81223 发表于 2008-1-24 10:48:31

Dim oDesc, tempObj, i '定义变量
set oDesc = Description.Create() '创建描述对象
oDesc("micclass").value = "WebCheckBox" '描述对象的类型为"WebCheckBox"
'把画面上所有的"WebCheckBox"控件筛选出来
set tempObj = Browser("xxx").Page("xxx").Frame("xxx").ChildObjects(oDesc)
if tempObj.count > 0 then '画面上是否存在"WebCheckBox"控件
   i = getRandomValue(tempObj.count)
   '对象是否可用并且没有被打勾
   if tempObj(i).GetROProperty("disabled") = 0 and tempObj(i).GetROProperty("checked") = 0 then
      tempObj(i).set On '对象打勾
   End if
End if
这个我理解了。。。
但是下面的这个
**********************************
'取得随机数
'valFanWei:随机数的大小
'**********************************
Function getRandomValue(valFanWei)
   Dim RandomValue
   Randomize(Timer)
   RandomValue = Int((valFanWei * Rnd))
   getRandomValue = RandomValue
End Function
我不明白是什么意思,请高手指点一下

jinsen 发表于 2008-1-24 10:57:30

回复 6# 的帖子

这是一个取得随机数的方法。比如说你传入一个数字(10),他就会随机生成一个0-9的数字。

cgy81223 发表于 2008-1-24 14:25:23

to:JINSEN
感谢你的帮助,你给的代码已经实现。
带是如果我不是想全选中CHENKBOX,而是随即选择怎么操作呢,就是每次运行选中的CHECKBOX的数量不同。例如第一次运行选中2个,第二次有可能选中5个。。。。
这样该怎么写呢。

jinsen 发表于 2008-1-24 15:01:07

if tempObj.count > 0 then '画面上是否存在"WebCheckBox"控件
    i = getRandomValue(tempObj.count) '随机取得要选中几个CheckBox
    For j = 0 to i '循环打勾
       '对象是否可用并且没有被打勾
         if tempObj(j).GetROProperty("disabled") = 0 and tempObj(j).GetROProperty("checked") = 0 then
            tempObj(j).set On '对象打勾
         End if
    Next
End if
这样做就是从头开始,数目随机,顺序固定。

jinsen 发表于 2008-1-24 15:07:38

if tempObj.count > 0 then '画面上是否存在"WebCheckBox"控件
    i = getRandomValue(tempObj.count) '随机取得要选中几个CheckBox
    For j = 0 to i '循环打勾
       k = getRandomValue(tempObj.count) '随机取得要选中的是第几个CheckBox
       '对象是否可用并且没有被打勾
         if tempObj(k).GetROProperty("disabled") = 0 and tempObj(k).GetROProperty("checked") = 0 then
         tempObj(k).set On '对象打勾
         Else
         j = j - 1 '如果随机选中的CheckBox已经被打勾,这次循环不记入总循环的次数。
         End if
    Next
End if
这样做就是数目随机,顺序随机。

zhuyuancan 发表于 2008-1-25 19:06:14

在我所从事的项目中一个页面也有很多的webcheckbox控件,按楼主的方法我是这样控制的,在我的对象库中我的webcheckbox对象其name属性是按checkbox_0、checkbox_1、...排列的:
所以我进行的处理方式是:
x=RandomNumber.Value(0,100) '取0~100间的随机数
browser("110").Page("110").Frame("110").WebCheckBox("name:=checkbox_"&x).set "on"
不知道对楼主有没有借鉴价值

angelia_liu 发表于 2008-8-21 11:45:47

为什么我运行的时候会有语法错误呢?

if tempObj(i).GetROProperty("disabled") = 0 and tempObj(i).GetROProperty("checked") = 0 then
      tempObj(i).set On '对象打勾
这个有错吗?我的提示 tempObj(i).set On 有语法错误
页: [1]
查看完整版本: 请问checkbox可以做随即选择吗?