51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1563|回复: 6
打印 上一主题 下一主题

[原创] 请教下childobject

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-8-18 00:11:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想通过childobject把页面中某个区域的所有链接都遍历一遍可以吗?
是否可以使用x,y坐标实现??求高手解答
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-8-18 08:31:09 | 只看该作者
  1. Set BrowserObj = Description.Create()
  2. BrowserObj("micclass").Value = "Browser"
  3. Set Win32Browser = Desktop.ChildObjects(BrowserObj)

  4. For bindex = 0 to Win32Browser.Count - 1
  5.         Set PageObj = Description.Create()
  6.         PageObj("micclass").value = "Page"
  7.         Set Win32Page = Win32Browser(bindex).ChildObjects(PageObj)
  8.        
  9.         For pindex = 0 to Win32Page.Count - 1
  10.                 Set FrameObj = Description.Create()
  11.                 FrameObj("micclass").Value = "Frame"
  12.                 Set Win32Frame = Win32Page(pindex).ChildObjects(FrameObj)
  13.                
  14.                 For findex = 0 to Win32Frame.Count  - 1   
  15.                         Set LinkObj = Description.Create()
  16.                         LinkObj("micclass").Value = "Link"
  17.                         Set Win32Link = Win32Frame(findex).ChildObjects(LinkObj)
  18.                        
  19.                         For lindex = 0 To Win32Link.Count - 1
  20.                                 Win32Link(lindex).Click
  21.                                 Win32Browser(bindex).Sync
  22.                         Next
  23.                        
  24.                         Set Win32Link = Nothing
  25.                         Set LinkObj = Nothing                       
  26.                 Next
  27.                
  28.                 Set Win32Frame = Nothing
  29.                 Set FrameObj = Nothing
  30.         Next
  31.        
  32.         Set Win32Page = Nothing
  33.         Set PageObj = Nothing
  34. Next

  35. Set Win32Browser = Nothing
  36. Set BrowserObj = Nothing
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-8-18 08:34:49 | 只看该作者
在一般的页面中无需使用Frame这一层,IE也不需要Count,如果确定了Page对象在哪里就更简单了
  1. Set LinkObj = Description.Create()
  2. LinkObj("micclass").Value = "Link"
  3. Set Win32Link = Browser("已知的Browser").Page("已知的的Page").ChildObjects(LinkObj)

  4. For lindex = 0 To Win32Link.Count - 1
  5.         Win32Link(lindex).Click
  6.         Browser("已知的Browser").Page("已知的的Page").Sync
  7. Next

  8. Set Win32Link = Nothing
  9. Set LinkObj = Nothing
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2011-8-18 15:15:11 | 只看该作者
不需要用坐标。
用描述性变成就可以了。
先确定区域,是frame还是div,这些都可以DOM来解决。
然后描述link的属性,一般用micclass、html tag、html id三个属性来确定控件
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2011-8-19 10:22:13 | 只看该作者
可是我的link上面一层就是整个page了,如果把整个page中所有的link都遍历出来会有很多不需要的link。
而这些需要和不需要的link又没有属性一目了然,所以我想用区域来区分link。
而且childobjects遍历效率也不高啊,有没有相对简单的方法,比如坐标范围
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2011-8-19 10:44:39 | 只看该作者
回复 5# hepeihao


    你试试index或sourceIndex吧
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2011-8-19 13:18:07 | 只看该作者
多谢了,其实我也找其他办法能解决
只是想问问有没有办法能直接取区域的方法实现,如果可以取区域以后很多地方都能派上用场,呵呵
回复 6# rogerliu0303
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-9 01:01 , Processed in 0.076009 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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