ChildObjects的妙用

上一篇 / 下一篇  2012-10-26 15:13:25 / 个人分类:行走在测试的途中

问题现象:
  1) 页面上有一个下拉列表WebList,会根据一个比较随机的条件变为可用或不可用,可用的时候需要选择下拉的选项,郁闷的是可用和不可用的时候控件的name不一样。如果用exist去判断,虽然可以,但是总会出warning。
 
  2) 页面上有2个按钮WebButton,一个确定一个返回,他们的name、text等很多属性值都是一样的(我想XX了那个开发),不同的地方是一大串字符,他把点击按钮调用的函数,style等等很多东西都写在里面,如果用描述式去判断我觉得很麻烦。我后来用了坐标,结果窗口位置一变就识别不到了。

  解决办法:
 
  上面两种问题其实都需要另外一种识别控件的方法,常用的几种都无法行得通。于是在查看帮助的时候发现了这个ChildObjects,返回对象中包含的子对象的集合。忽然觉得这个很有用,正好有示例,如下:

  Sub ChildObjects_Example()
  '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.
  Set Desc = 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
  突然我就想发现了新大陆一样,只要返回了一个同类型的对象集合,然后用这个集合来定位到我要的控件。这里只要判断他是集合里的第几个就行了,而我遇到的问题的控件位置都是固定的。于是使用这个方法顺利解决了。
  可以说,这是另一种识别对象的方法,对于难以识别的对象来说,这个方法实在太方便了。具体解决办法,只要根据帮助的内容稍加修改就可以了,这里简单写一下。

  Set Desc = Description.Create()
  oDesc("micclass").Value = "WebButton"
  Set Lists = Browser("浏览器名字").Page("页面名字").ChildObjects(oDesc)
  Lists(0).Click '我要的控件是第一个

  '另一个WebList的就是判断那个控件的name是什么,然后就知道现在这个下拉列表是可用还是不可用,就可以继续操作了。
 
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
原文来自:http://www.ltesting.net/ceshi/ceshijishu/rjcsgj/mercury/quicktestpro/2012/0724/205301.html

TAG:

小妖天下 引用 删除 喵小妖7117   /   2015-11-02 10:38:25
为什么,我用ChildObjects之前没有问,能获取到元素的个数,后面使用的时候,每次都是提示0呢?求解答
小妖天下 引用 删除 喵小妖7117   /   2015-11-02 10:38:11
5
 

评分:0

我来说两句

日历

« 2024-03-30  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 24254
  • 日志数: 32
  • 建立时间: 2012-02-28
  • 更新时间: 2015-02-06

RSS订阅

Open Toolbar