谢谢yabest如此慷慨。
今晚啥也不用吃了,直接啃代码了 原帖由 kangaroo 于 2007-8-31 18:00 发表 http://bbs.51testing.com/images/common/back.gif
天呐!这么长的代码!!我有心理阴影!!!
谢谢yabest如此慷慨。
今晚啥也不用吃了,直接啃代码了
晕,你没看大部分是注释和使用说明啊,代码其实没多少!
而且是通用函数,只写一次的。所以要写的完善一点,使用起来就很爽啦!偷懒写的不好的话,使用起来就痛苦!
回复 #22 yabest 的帖子
yabest,真的是高手回复 #22 yabest 的帖子
对我这种才自学一个月,只会写三行代码的人来说…………偶像!!我要向你学习! 佩服佩服。。。
请教请教。。。 dim obj_desc
set obj_desc = Description.Create
Obj_desc("html tag").value = "INPUT"
Obj_desc("type").value = "checkbox"
dim allcheckbox,onecheckbox
set allcheckbox = Browser("Browser").Page("Page").ChildObjects(obj_desc)
for each onecheckbox in allcheckbox
onecheckbox.set "ON"
next
我在http://blog.csdn.net/black_sam/archive/2007/09/05/1772656.aspx里写了一篇关于descriptive programming的
[ 本帖最后由 black.sam 于 2007-9-6 17:07 编辑 ] 原帖由 black.sam 于 2007-9-6 17:06 发表 http://bbs.51testing.com/images/common/back.gif
dim obj_desc
set obj_desc = Description.Create
Obj_desc("html tag").value = "INPUT"
Obj_desc("type").value = "checkbox"
dim allcheckbox,onecheckbox
set allcheckbox = Browser("Browser").Page( ...
谢谢black.sam的分享。
对你的脚本我有些地方看不明白。我先解释一下我对你脚本的理解,看我说的对不对吧
第一二行是定义了一个object:obj_desc即我们要用的check box(第一次看到Description.Create理解可能有偏差);
第三四行是为obj_desc的两个属性heml tag和type分别赋值;
第五六行定义变量allcheckbox为obj_desc的所有子对象集;
第七八九行为一个for each-next循环,在allcheckbox定义之内的onecheckbox都会执行第八行set "ON"的命令,即在对应check box里打勾,不断循环、打勾,直到循环结束,所有目标项都被选择了。程序结束
不知是不是你程序没写完全,我没明白
1.为什么没有对onecheckbox赋值?难道它只是充当一个指针的作用?(偶没编程经验)
2.从哪个变量来控制/输入我要选出的对象?莫非是对html tag这个属性进行参数化?那循环时Obj_desc("html tag").value = "INPUT"只运行过一遍,如何保证所有预定目标项都被选择了? onecheckbox是你要选择的checkbox,通过for each next,从allcheckbox中查找,如果存在你要选择的onecheckbox就set "ON" sdlkfj6 原来这么麻烦啊 原帖由 wlcking 于 2007-9-11 11:37 发表 http://bbs.51testing.com/images/common/back.gif
onecheckbox是你要选择的checkbox,通过for each next,从allcheckbox中查找,如果存在你要选择的onecheckbox就set "ON"
如果要勾选出多个,如何对上述脚本参数化?如果onecheckbox就是要选择的checkbox,那是否只要再加一个对onecheckbox的参数化赋值,然后在循环内加一句 DataTable.SetCurrentRow(tb_i+1)就可以把所有数据都运行一遍?还是onecheckbox本身就是个datatable,for each-next循环会自动运行下一行数据?迷惑中 要勾选多个就多用几次for each next,对onecheckbox参数话就行了,for each next就是在一个集合里查找值,查找到了就执行for each next下的语句 1:首先在OR里添加Table。
2:利用childItem(,“WebCheckBox”,0).set “On”
其中还要用到webTable的RowCount、GetCellData方法 真是受益匪浅,仔细看看 好好研究下,好东西 不错好方法 ,我是直接查看 checkbox的命名方式,然后寻找checkbox,再进行设置,不过方法不通用 哈哈,看来得好好学学VB的语法了:lol :lol GetRowWithCellText这个函数能根据你后面的文字内容返回当前在table中的Row的值
然后根据row的值用WebCheckBox("index:=&Row&").Set "ON" sdlkfj6