hepeihao 发表于 2011-8-18 00:11:47

请教下childobject

我想通过childobject把页面中某个区域的所有链接都遍历一遍可以吗?
是否可以使用x,y坐标实现??求高手解答

lyscser 发表于 2011-8-18 08:31:09

Set BrowserObj = Description.Create()
BrowserObj("micclass").Value = "Browser"
Set Win32Browser = Desktop.ChildObjects(BrowserObj)

For bindex = 0 to Win32Browser.Count - 1
        Set PageObj = Description.Create()
        PageObj("micclass").value = "Page"
        Set Win32Page = Win32Browser(bindex).ChildObjects(PageObj)
       
        For pindex = 0 to Win32Page.Count - 1
                Set FrameObj = Description.Create()
                FrameObj("micclass").Value = "Frame"
                Set Win32Frame = Win32Page(pindex).ChildObjects(FrameObj)
               
                For findex = 0 to Win32Frame.Count- 1   
                        Set LinkObj = Description.Create()
                        LinkObj("micclass").Value = "Link"
                        Set Win32Link = Win32Frame(findex).ChildObjects(LinkObj)
                       
                        For lindex = 0 To Win32Link.Count - 1
                                Win32Link(lindex).Click
                                Win32Browser(bindex).Sync
                        Next
                       
                        Set Win32Link = Nothing
                        Set LinkObj = Nothing                       
                Next
               
                Set Win32Frame = Nothing
                Set FrameObj = Nothing
        Next
       
        Set Win32Page = Nothing
        Set PageObj = Nothing
Next

Set Win32Browser = Nothing
Set BrowserObj = Nothing

lyscser 发表于 2011-8-18 08:34:49

在一般的页面中无需使用Frame这一层,IE也不需要Count,如果确定了Page对象在哪里就更简单了
Set LinkObj = Description.Create()
LinkObj("micclass").Value = "Link"
Set Win32Link = Browser("已知的Browser").Page("已知的的Page").ChildObjects(LinkObj)

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

Set Win32Link = Nothing
Set LinkObj = Nothing

rogerliu0303 发表于 2011-8-18 15:15:11

不需要用坐标。
用描述性变成就可以了。
先确定区域,是frame还是div,这些都可以DOM来解决。
然后描述link的属性,一般用micclass、html tag、html id三个属性来确定控件

hepeihao 发表于 2011-8-19 10:22:13

可是我的link上面一层就是整个page了,如果把整个page中所有的link都遍历出来会有很多不需要的link。
而这些需要和不需要的link又没有属性一目了然,所以我想用区域来区分link。
而且childobjects遍历效率也不高啊,有没有相对简单的方法,比如坐标范围

rogerliu0303 发表于 2011-8-19 10:44:39

回复 5# hepeihao


    你试试index或sourceIndex吧

hepeihao 发表于 2011-8-19 13:18:07

多谢了,其实我也找其他办法能解决
只是想问问有没有办法能直接取区域的方法实现,如果可以取区域以后很多地方都能派上用场,呵呵
回复 6# rogerliu0303
页: [1]
查看完整版本: 请教下childobject