51Testing软件测试论坛

标题: 请教下childobject [打印本页]

作者: hepeihao    时间: 2011-8-18 00:11
标题: 请教下childobject
我想通过childobject把页面中某个区域的所有链接都遍历一遍可以吗?
是否可以使用x,y坐标实现??求高手解答
作者: lyscser    时间: 2011-8-18 08:31
  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
复制代码

作者: lyscser    时间: 2011-8-18 08:34
在一般的页面中无需使用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
复制代码

作者: rogerliu0303    时间: 2011-8-18 15:15
不需要用坐标。
用描述性变成就可以了。
先确定区域,是frame还是div,这些都可以DOM来解决。
然后描述link的属性,一般用micclass、html tag、html id三个属性来确定控件
作者: hepeihao    时间: 2011-8-19 10:22
可是我的link上面一层就是整个page了,如果把整个page中所有的link都遍历出来会有很多不需要的link。
而这些需要和不需要的link又没有属性一目了然,所以我想用区域来区分link。
而且childobjects遍历效率也不高啊,有没有相对简单的方法,比如坐标范围
作者: rogerliu0303    时间: 2011-8-19 10:44
回复 5# hepeihao


    你试试index或sourceIndex吧
作者: hepeihao    时间: 2011-8-19 13:18
多谢了,其实我也找其他办法能解决
只是想问问有没有办法能直接取区域的方法实现,如果可以取区域以后很多地方都能派上用场,呵呵
回复 6# rogerliu0303




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