51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3260|回复: 10
打印 上一主题 下一主题

[原创] 关于ChildObjects_Example

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-6-10 16:37:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. Sub ChildObjects_Example()
  2. 'The following example uses the ChildObjects method to find all the
  3. 'list objects on a Web page, and then to select an item in each list.

  4. Set oDesc = Description.Create()
  5. oDesc("micclass").Value = "WebList"
  6. Set Lists = Browser("Mercury Interactive").Page("Mercury Interactive").ChildObjects(oDesc)
  7. NumberOfLists = Lists.Count()
  8. For i = 0 To NumberOfLists - 1
  9. Lists(i).Select i + 1
  10. Next


  11. End Sub
复制代码


我想
help中的这段代码应该是这样理解的。

取得页面中所有的下拉框。

比如这个论坛列表页有三个下拉框

论坛跳转
查看-->精华主题
查看-->按升序排列

那个help中的例子,就是取得这三个下拉框对象。
也就是
Set Lists = Browser("Mercury Interactive").Page("Mercury Interactive").ChildObjects(oDesc)

然后呢?就比较好懂了,
for循环中的
Lists(i).Select i + 1
就是第一个下拉框select第一项,
第二个下拉框select第二项。
注意:这里的项,也就是下拉框中的选项应该是从零开始的。

所以,如果是我们论坛的话第一次执行循环,
结果是select 论坛跳转中的第二项
“> [软件测试论坛公告]”

不知道说到这里,大家是否明白了,
我没有看MI的网站,但是我想它在help中给出的这个例子并不合适,
不知道大家以为如何。


这也就是我们在如何点webtable中的link中讨论的那个例子。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
 楼主| 发表于 2005-6-10 16:42:03 | 只看该作者
主要的不合适,就是那个i 和NumberOfLists

靠,让人不知道到底是下拉框的个数,还是下拉框中选项的个数。

但是有一点,可以肯定,MI这个例子中可能自己也比较糊涂
Lists( i ).Select i + 1
呵呵,为什么还要加一呢,呵呵,
weblist是从0开始的嘛。呵呵。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-6-10 16:43:02 | 只看该作者
help写成这个样子,真是让我这样的糊涂人不知道怎么学了哦,呵呵:)

但愿只有这一处。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-6-10 16:59:59 | 只看该作者
.....然后呢?就比较好懂了,
for循环中的
Lists(i).Select i + 1
就是第一个下拉框select第一项,
第二个下拉框select第二项。
注意:这里的项,也就是下拉框中的选项应该是从零开始的。

所以,如果是我们论坛的话第一次执行循环,
结果是select 论坛跳转中的第二项
“> [软件测试论坛公告]”

当循环到第二次就开始出错了,
页面刷新,QTP认不了,所以要找一下静态的试一试才知道!
修改I值为1,从第二个方框执行起.脚本还是出错.
原因不知为何?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2005-6-10 17:08:09 | 只看该作者
用附件中的html试一下。就知道了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2005-6-10 17:13:42 | 只看该作者
结果是如图所示,呵呵。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2005-6-10 17:18:41 | 只看该作者
Set oDesc = Description.Create()
oDesc("micclass").Value = "WebList"
Set Lists = Browser("Mercury Interactive").Page("Mercury Interactive").ChildObjects(oDesc)
NumberOfLists = Lists.Count()
For i = 0 To NumberOfLists - 1
Lists(i).Select i + 1
Next


End Sub
这个是相对于静态来说是可以的.但动态就不行.要作出相应的改变!
要不然后回放就会出错,说认不到这个OBJECT!
MI的HELP使用要细化!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2005-6-10 17:28:32 | 只看该作者
如果把
For i = 1 To NumberOfLists - 1

执行第二次循环的时候,i=2,i+1=3,但是最后一个下拉框没有第三项哦
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2005-6-10 17:34:22 | 只看该作者
知道了!THX
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-12-22 04:02:24 | 只看该作者

我们大概都没有好好读他那段英文解释

'The following example uses the ChildObjects method to find all the 'list objects on a Web page, and then to select an item in each list."
一开始我也一直搞不懂为何我上creweely.com,执行的代码总是显示1。那个weblist可有好多好多。一直到我down下了select.html才明白这个list objects是指一共在页面上显示多少个weblist的对象个数,而不是weblist的选项个数。

那如果我要写一个dp, 算出其中一个weblist object一共有多少个weblist下拉列表可以选择,该如何写呢? 让我试试,大家也在这里讨论讨论。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-12-22 05:39:22 | 只看该作者

找到了:

http://bbs.51testing.com/thread-132523-1-10.html

要用如下描述:
Ver_count=Browser("Browser").Page("Page").weblist("filter1").GetROProperty ("items count")
这个是count number的。结果是filter1有9个。

Ver_item=Browser("Browser").Page("Page").weblist("filter1").GetROProperty ("all items")
这个是返回所有的filter1列表里面的值。
原来getroproperty还有这个作用。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-28 07:31 , Processed in 0.088621 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表