51Testing软件测试论坛

标题: 关于下拉菜单随机选择的问题! [打印本页]

作者: dba    时间: 2005-6-20 15:03
标题: 关于下拉菜单随机选择的问题!
请问,对于网页的下拉菜单选择,能不能写脚本每次都让他随机选择呢?
作者: QA_BAY    时间: 2005-6-20 15:35
好像试了一下,只能随机数字!
你说的那一种没有找到!
不知道其它的网友知道吗?
作者: michelle_happy    时间: 2005-6-20 15:42
我觉得应该是不能的,除非自己做一个方法调用
先得把下拉框中所有项都输出,然后随机抽取一个输入
作者: lovetest6    时间: 2005-6-20 15:50
自己写脚本嘛,MSN上是不是问过我?

应该可以实现。
作者: QA_BAY    时间: 2005-6-20 16:21
Originally posted by michelle_happy at 2005-6-20 03:42 PM:
我觉得应该是不能的,除非自己做一个方法调用
先得把下拉框中所有项都输出,然后随机抽取一个输入

对,我也是这样想.
先算出有多少个数据,然后调用一个随机数来选择!
作者: lovetest6    时间: 2005-6-20 16:42
是啊,就应该这样啊,不过还是要问问清楚,打算做什么呢?

打算测试页面上的javascript么??

选完了,页面会跳转么?跳转是当前页面跳转,还是弹出呢?
作者: lovetest6    时间: 2005-6-20 16:43
我想楼主的意思是在一个循环的action中,随机的选吧?

还是在一个页面上选啊?
作者: dba    时间: 2005-6-20 17:36
是的,在一个循环的action中随机的选择!
作者: lovetest6    时间: 2005-6-20 17:47
生成一个随机数就可以了。比如生成一个5到10之间的随机数
IndexNum=Int((10 - 5 + 1) * Rnd + 5)

  1. Sub Select_Example2()

  2. 'In the following example, the Select method is used to
  3. 'select a city by its index number in the list of possible
  4. 'arrival cities.

  5. Browser("Mercury Tours").Page("Find Flights_2").WebList("arrive").Select "#4"


  6. End Sub
复制代码


上面是MI的例子。

在循环里面把"#4"改成"#"&IndexNum就可以了。

[ Last edited by lovetest6 on 2005-6-20 at 18:06 ]
作者: lovetest6    时间: 2005-6-20 18:12
  1. For i =1 to 10
  2.     Randomize
  3.     IndexNum=Int((10 - 5 + 1) * Rnd + 5)
  4.     Browser("Mercury Tours").Page("Find Flights_2").WebList("arrive").Select "#"&IndexNum
  5.     wait(3)
  6. Next
复制代码


这样可以了吧?

[ Last edited by lovetest6 on 2005-10-27 at 14:43 ]
作者: data    时间: 2005-6-21 09:37
请问我加入了随机脚本之后,为什么回放到“Browser("会员销售系统").Page("会员销售系统_2").WebList("questionId").Select "#"&IndexNum”时就会报错,我的选择列表里面有4个选项,是否生成随机书那里错了?

Browser("会员销售系统").Page("会员销售系统").Link("注册新用户").Click
Browser("会员销售系统").Page("会员销售系统_2").WebEdit("userName").Set "laex"
Browser("会员销售系统").Page("会员销售系统_2").WebEdit("password").SetSecure "42b76ae629f70b0c87bc2c5dd673"
Browser("会员销售系统").Page("会员销售系统_2").WebEdit("confirm").SetSecure "42b76ae9940e8b276b1421e0f4e2"
For i =1 to 4
IndexNum=Int((4 - 1 + 1) * Rnd + 4)
Browser("会员销售系统").Page("会员销售系统_2").WebList("questionId").Select "#"&IndexNum
    wait(3)
Next
Browser("会员销售系统").Page("会员销售系统_2").WebEdit("answer").Set "panda"
作者: lovetest6    时间: 2005-6-21 10:57
应该是0123吧??
试试看不就知道了?
作者: QA_BAY    时间: 2005-6-21 12:02
Originally posted by data at 2005-6-21 09:37 AM:
请问我加入了随机脚本之后,为什么回放到“Browser("会员销售系统").Page("会员销售系统_2").WebList("questionId").Select "#"&IndexNum”时就会报错,我的选择列 ...

你这个做是不行的!
你原先选择的是一个名称,是一个字符串,
你加了LOVETEST6的程序进去之后,变成了选择一个随机数,所以就出现错误
你应该先让QTP去选择一个数字,然后再写一个随机数应该这样才可以!
作者: lovetest6    时间: 2005-6-21 13:06
http://bbs.51testing.com/viewthread.php?tid=13902&fpage=1
上面的贴上讨论过,weblist是从0开始的。不是从一开始的。

另外for循环上的1 to 10没什么意义,只是演示给你看10遍而已:)
呵呵。
作者: data    时间: 2005-6-21 15:41
那到底改怎么写啊,越听越乱了!
作者: lovetest6    时间: 2005-6-21 15:56
我认为说的够明白了,你哪儿不明白,可以说出来啊。

忽略QA_BAY的发言就行了,呵呵:)
作者: 飘雪    时间: 2005-6-21 16:15
Originally posted by lovetest6 at 2005-6-21 01:06 PM:
http://bbs.51testing.com/viewthread.php?tid=13902&fpage=1
上面的贴上讨论过,weblist是从0开始的。不是从一开始的。

另外for循环上的1 to 10没什么意义,只是演示给你看10遍而已 ...


挺奇怪的,我的weblist的循环好像从1开始执行呀。
作者: lovetest6    时间: 2005-6-21 16:42
那是估计因为0是"请选择"吧,呵呵
作者: data    时间: 2005-6-21 17:52
请问lovetest6,我这个脚本应该怎么改呢?有什么地方错了?
IndexNum=Int((4 - 1 + 1) * Rnd + 4)
Browser("会员销售系统").Page("会员销售系统_2").WebList("questionId").Select "#"&IndexNum
作者: lovetest6    时间: 2005-6-23 18:20
IndexNum=Int((10 - 5 + 1) * Rnd + 5)
以上代码生成5到10之间的随机数,
10是上界,5是下界。

weblist是从0开始的,你有四个选项。
那就是要0123之间的随机数。
也就是说你现在要生成0到3之间的随机数,

你说应该怎么改?呵呵:)

需要要我写出来么?可一加我的MSN询问。

[ Last edited by lovetest6 on 2005-6-23 at 18:28 ]
作者: zhenhaiou    时间: 2005-6-24 09:40
怎么取得列表中的选项的数目?
作者: lovetest6    时间: 2005-6-24 13:13
count应该可以吧?
手册上有吧,就不用我讲的太清楚了吧?
呵呵:)
不会看手册的,是不是需要写个贴子,将一下手册如何看呢?

不会英文的,可就没办法了。
我英文也不好。

呵呵。
作者: hongtang    时间: 2005-6-27 22:16
标题: 利用下拉框中的索引序列号,随即选取
利用下拉框中的索引序列号,随即选取。
RandomNumber (0,5) 就是0~5 之间随便取~还有
有时候要加“”的 有时候不要~至于#千万别少了~
作者: QA_BAY    时间: 2005-6-28 11:47
RandomNumber (0,5)
也可以,这是另一种方法
作者: lovetest6    时间: 2005-6-28 13:45
用QTP的对象比VB的对象方便多了。
作者: seventulip    时间: 2005-6-28 14:22
诶,为何不选好几个,然后使用QTP 提供的参数化功能调用。不行吗?这样不是很简单吗?
作者: QA_BAY    时间: 2005-6-28 14:31
随机选择比较方便吧,
选几组数据也可以.总之要活用QTP吧!
你觉得哪种好用就用哪种.
没有人限制你的!
作者: tracyd    时间: 2008-12-22 05:48
标题: 看看这里就知道了
原帖由 zhenhaiou 于 2005-6-23 20:40 发表
怎么取得列表中的选项的数目?


http://www.51testing.com/?3528/action_viewspace_itemid_18582.html

也可以用这个方法随机抽取,随机选取weblist的方法:
Function Select_weblist(obj)
   Dim item_count
   item_count=obj.GetROProperty ("items count")
   If  item_count > 0 Then
          Randomize
  Get_Ran=RandomNumber (1,item_count-1)
  obj.Select "#"&Get_Ran
   End If
End Function

把对象传进去,就可以自动选取weblist中的值,在实际操作中特别是针对动态的weblist,而且对流程没有影响的的weblist效果不错,拿出来和大家分享.

[ 本帖最后由 tracyd 于 2008-12-21 17:10 编辑 ]




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