最近使用QTP发现一个很奇怪的问题,为了对几个WebList对象做随机选取,尝试用rnd来完成。但是问题就来了,定义了num为列表范围内随机产生的数字。脚本如下
Option Explicit
Randomize
Dim ilist
Dim num
ilist = Browser("*****系统").Page("*****系统").WebList("food").GetROProperty("items count")
’获取列表元素个数
msgbox ilist
num=int((ilist*rnd)) ’随机选列表内元素
msgbox num
Browser("*****系统").Page("*****系统").WebList("food").Select num 此时问题出现了,执行中无法从对象中识别出num的值,在网上找了很多资料都没看到解决方法,一个偶然的搜索,在网上一个脚本程序里突然发现了一个特殊的描述Select "#" & num,虽然我无法查到"#"的用处,但抱着试下态度还是用在了脚本里,竟然通过了,完成了随机选择。 Browser("*****系统").Page("*****系统").WebList("food").Select 1 或者 Browser("*****系统").Page("*****系统").WebList("food").Select ilist-1都可以执行。 但就是
Browser("*****系统").Page("*****系统").WebList("food").Select num无法执行。于是向老师发邮件请教了这个原因,终于等到了回复,发布如下。
#没什么特殊的含义,就是为了标识后面的是一个数值。因为weblist的select方法后面可以是一个内容项或者索引值,而当你希望是索引值时,官方建议你用"#index"的形式去标识它,这个索引值从0开始。记住,这个时候"#index"是一个字符串,比如 "#1" 、"#2"这样。而至于为什么不加井号而可以直接写1呢?这个就在于QTP自己的内部处理了。 总而言之,记得加井号是官方要求你加的,你加上就行了。(霸王条款嘛,汗~~!) |