51Testing软件测试论坛

标题: weblist对象的方法与“#”的使用 [打印本页]

作者: hahu2001    时间: 2007-7-26 19:47
标题: weblist对象的方法与“#”的使用
    最近使用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无法执行。于是向老师发邮件请教了这个原因,终于等到了回复,发布如下。
#没什么特殊的含义,就是为了标识后面的是一个数值。因为weblistselect方法后面可以是一个内容项或者索引值,而当你希望是索引值时,官方建议你用"#index"的形式去标识它,这个索引值从0开始。记住,这个时候"#index"是一个字符串,比如 "#1" "#2"这样。而至于为什么不加井号而可以直接写1呢?这个就在于QTP自己的内部处理了。
总而言之,记得加井号是官方要求你加的,你加上就行了。(霸王条款嘛,汗~~!

作者: garyyes    时间: 2007-7-26 23:10
原帖由 hahu2001 于 2007-7-26 19:47 发表
    最近使用QTP发现一个很奇怪的问题,为了对几个WebList对象做随机选取,尝试用rnd来完成。但是问题就来了,定义了num为列表范围内随机产生的数字。脚本如下
Option Explicit
Randomize
Dim ilist
Dim nu ...

你查查QTP的help,就知道#是为了标识index,加和不加都是可以的。
你既然知道index由0开始,就应该明白你的script有问题,应该写这样:
ilist = Browser("*****系统").Page("*****系统").WebList("food").GetROProperty("items count") - 1
作者: hahu2001    时间: 2007-7-29 19:20
-1 ?为什么?还是没明白...
作者: jackymail    时间: 2007-7-31 11:32
标题: 不-1就越界了。
rt
作者: yt1985cncn    时间: 2007-7-31 11:51
楼上的意思偶明白,的确越界了。查了下帮助,发现select方法还真麻烦,针对不同的对象,起始的索引值还不一样。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2