这里先来推荐一个在QTP中实现weblist和webcheckbox自动化选择的一种方法,推荐的理由是网上的方法很多不可行,或是太过于复杂。其实事情往往很简单,只是思考他的人总是会认为它很复杂,所以才有了那么多复杂的事。

废话不多说,来讲原理:

由于本台本本上没有具体的代码,所以只有用记忆外加口头来描述如何进行weblist自动化的选择,webcheckbox方法与之相同。

一般我们录制一个weblist的选择,大体会是下面这样:

browser(一个页面).page(一个页面).frame(一个框架).weblist(一个下拉选择表).select 具体值

对于weblist,一般来说用Objectspy来查看,一般情况下会在属性名为"all items"之类的属性下,对应有"值1;值2;值3...."。这里,我们可以使用这个完整的值段来进行自动选择的参考取值。我们首先可以使用getROproperty("all items")的方式来取出该值段,随后我们需要解决的就是如何把这个完整的值段分成若干份然后存入一个数组变量来供我们使用。

相信大部分的读者已经想到了使用split函数来对这个完整的值段来进行分割了吧!没错,我们使用的正是这个帅气的函数,我们可以像这样写split(browser(一个页面).page(一个页面).frame(一个框架).weblist(一个下拉选择表).getROproperty("all items"),";",-1,1)的方式来获得这个值段中每一小块我们需要的是值(关于split函数不明白的我就不做阐述了,请不懂的童鞋参考网上的资料哦~~)分割了以后,我们可以把它存入一个数组变量中,然后剩下所需做的就是如何对该数组进行随机选择其值了。

在QTP中,我们可以使用Randomnumber(下界,上界)来进行随机取值,不过剩下最关键的是我们如何获得该数组的上界呢?说到这里就很简单了~那就是ubound函数!没错,一个小小的函数就成为了我们做自动取值的关键~(说到这里是不是有点觉得复杂的事情其实是很简单的呢?)

下面我们这样做:

Dim rand_select

rand_select=split browser(一个页面).page(一个页面).frame(一个框架).weblist(一个下拉选择表).getROproperty("all items"),";",-1,1

browser(一个页面).page(一个页面).frame(一个框架).weblist(一个下拉选择表).select randomnumber(0,ubound(rand_select))

这样,我们就很简单的实现了weblist的自动化选择了!

关于webcheckbox的自动化选择方法也是一样的~

希望对大家有帮助,谢谢~在下Causeless