chooseyou123 发表于 2009-7-17 17:00:33

求救QTP控件名称变量化的问题

Dim j
j = 1
While j<FindCount
   Browser("Browser").Page("电力营销业务应用系统").Frame("PageFrame_3").WebCheckBox("rcvblAmtbox_" &j&).Set "ON"
   j = j+1
Wend

其中WebCheckBox的名称我要变量化,比喻说:随着循环,被识别为:WebCheckBox_1,WebCheckBox_2....
我在网上看了人家这样写,("rcvblAmtbox_" &j&).可是不行
我这运行到这的时候直接提示"rcvblAmtbox_" &j& 这个控件不能别识别
我试过:"rcvblAmtbox_" &j&"","rcvblAmtbox_&j&",..都不行
请高手帮忙。急。。
感激不尽

chooseyou123 发表于 2009-7-17 17:04:46

定一个

fei.ge 发表于 2009-7-17 17:11:08

用描述性对象编程的方法

WebCheckBox("name:=rcvblAmtbox_" &j)

chooseyou123 发表于 2009-7-17 17:23:44

顶一个

[ 本帖最后由 chooseyou123 于 2009-7-17 17:26 编辑 ]

chooseyou123 发表于 2009-7-17 17:24:58

版主还是不行啊。
我是按照你那么写的: Browser("Browser").Page("*****").Frame("PageFrame_3").WebCheckBox("name:=rcvblAmtbox_" &j).Set "ON"

错误提示

ls_721521 发表于 2009-7-17 17:29:44

用spy看看属性,哪个属性值是rcvblAmtbox?
但这样写估计不行了,用index加编号吧。。如:WebCheckBox("属性:=rcvblAmtbox","index:="&j)

chooseyou123 发表于 2009-7-17 17:39:36

唉,这个问题把我搞崩溃了。。
按照is_721521的方法还是不行。
我用spy查看了,奇怪所有的checkbox的name居然是rcvblAmtbox,但是我手动录制的时候明明是:rcvblAmtbox_后面加数字的。郁闷。
找不到这个控件:
提示: "name:=rcvblAmtbox","index:="&j).Set "ON"
连j都识别不了

ls_721521 发表于 2009-7-17 17:46:22

晕。。。。。。。

rcvblAmtbox后面的数字是qtp给你加上的编号。
找上面写的思路是对的,你再仔细debug一下。。

ls_721521 发表于 2009-7-17 17:47:04

另外index的编号是从0开始的。

ermine 发表于 2009-7-17 18:47:11

rcvblAmtbox后面带_是因为录制的时候,名字重复,QTP为了区分,自己加的。
你可以用index,或者x,y的坐标来定位你要找的东东

chooseyou123 发表于 2009-7-17 20:00:41

感谢楼上几位战友的热心帮助,问题已经解决。
是我的粗心导致。
我把那个控件所属的 frame 名称搞错了,直接拷贝过来的。
特别感谢下 LS的提示。
页: [1]
查看完整版本: 求救QTP控件名称变量化的问题