51Testing软件测试论坛

标题: 关于ChildObjects_Example [打印本页]

作者: lovetest6    时间: 2005-6-10 16:37
标题: 关于ChildObjects_Example
  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中讨论的那个例子。
作者: lovetest6    时间: 2005-6-10 16:42
主要的不合适,就是那个i 和NumberOfLists

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

但是有一点,可以肯定,MI这个例子中可能自己也比较糊涂
Lists( i ).Select i + 1
呵呵,为什么还要加一呢,呵呵,
weblist是从0开始的嘛。呵呵。
作者: lovetest6    时间: 2005-6-10 16:43
help写成这个样子,真是让我这样的糊涂人不知道怎么学了哦,呵呵:)

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

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

当循环到第二次就开始出错了,
页面刷新,QTP认不了,所以要找一下静态的试一试才知道!
修改I值为1,从第二个方框执行起.脚本还是出错.
原因不知为何?
作者: lovetest6    时间: 2005-6-10 17:08
用附件中的html试一下。就知道了。
作者: lovetest6    时间: 2005-6-10 17:13
结果是如图所示,呵呵。
作者: QA_BAY    时间: 2005-6-10 17:18
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使用要细化!
作者: lovetest6    时间: 2005-6-10 17:28
如果把
For i = 1 To NumberOfLists - 1

执行第二次循环的时候,i=2,i+1=3,但是最后一个下拉框没有第三项哦
作者: QA_BAY    时间: 2005-6-10 17:34
知道了!THX
作者: tracyd    时间: 2008-12-22 04:02
标题: 我们大概都没有好好读他那段英文解释
'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下拉列表可以选择,该如何写呢? 让我试试,大家也在这里讨论讨论。
作者: tracyd    时间: 2008-12-22 05:39
标题: 找到了:
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还有这个作用。




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