kangaroo 发表于 2007-8-31 18:00:33

天呐!这么长的代码!!我有心理阴影!!!
谢谢yabest如此慷慨。
今晚啥也不用吃了,直接啃代码了

yabest 发表于 2007-8-31 23:42:17

原帖由 kangaroo 于 2007-8-31 18:00 发表 http://bbs.51testing.com/images/common/back.gif
天呐!这么长的代码!!我有心理阴影!!!
谢谢yabest如此慷慨。
今晚啥也不用吃了,直接啃代码了

晕,你没看大部分是注释和使用说明啊,代码其实没多少!
而且是通用函数,只写一次的。所以要写的完善一点,使用起来就很爽啦!偷懒写的不好的话,使用起来就痛苦!

51mobile 发表于 2007-9-1 15:15:38

回复 #22 yabest 的帖子

yabest,真的是高手

kangaroo 发表于 2007-9-3 14:16:31

回复 #22 yabest 的帖子

对我这种才自学一个月,只会写三行代码的人来说…………
偶像!!我要向你学习!

C060706 发表于 2007-9-6 15:40:50

佩服佩服。。。
请教请教。。。

black.sam 发表于 2007-9-6 17:06:20

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 编辑 ]

kangaroo 发表于 2007-9-10 12:22:21

原帖由 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"只运行过一遍,如何保证所有预定目标项都被选择了?

wlcking 发表于 2007-9-11 11:37:42

onecheckbox是你要选择的checkbox,通过for each next,从allcheckbox中查找,如果存在你要选择的onecheckbox就set "ON"

liujihui226 发表于 2007-9-11 12:16:17

sdlkfj6

liujihui226 发表于 2007-9-11 12:16:37

原来这么麻烦啊

kangaroo 发表于 2007-9-11 13:36:27

原帖由 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循环会自动运行下一行数据?迷惑中

wlcking 发表于 2007-9-11 14:37:59

要勾选多个就多用几次for each next,对onecheckbox参数话就行了,for each next就是在一个集合里查找值,查找到了就执行for each next下的语句

看雪时节 发表于 2007-9-11 15:01:41

1:首先在OR里添加Table。
2:利用childItem(,“WebCheckBox”,0).set “On”
   其中还要用到webTable的RowCount、GetCellData方法

cswxp_11 发表于 2007-9-11 15:16:01

真是受益匪浅,仔细看看

linnawang 发表于 2007-9-21 10:15:04

好好研究下,好东西

three116 发表于 2007-9-21 12:53:14

不错好方法 ,我是直接查看 checkbox的命名方式,然后寻找checkbox,再进行设置,不过方法不通用

qicyt1812 发表于 2007-10-9 16:05:24

哈哈,看来得好好学学VB的语法了:lol :lol

Jimmyshao 发表于 2007-10-9 16:29:47

GetRowWithCellText这个函数能根据你后面的文字内容返回当前在table中的Row的值
然后根据row的值用WebCheckBox("index:=&Row&").Set "ON"

nanice 发表于 2008-8-30 17:54:21

sdlkfj6

5555 发表于 2008-11-4 17:17:03

回复 20# 的帖子

好脚本,收藏了~:lol
页: 1 [2] 3
查看完整版本: 如何让QTP在大量列表中勾选出需要的数据?