如何通过COM访问IE中带有ajax内容的网页?

时间:2015-11-27 17:09:37

标签: ajax internet-explorer dom com autohotkey

我通过带有AHK的COM接口控制的IE访问网页。在这种情况下,facebook组页面,其中组通过ajax动态加载。但是我也遇到了与其他页面相同的问题。

代码 简化

wb := ComObjCreate("InternetExplorer.Application")

wb.navigate("www.facebook.com/bookmarks/groups")

wb.visible := true

While wb.readyState!=4 && wb.busy
{
    Sleep 50
}

sleep 1000

source := wb.document.getElementsByTagName("body")[0].innerHTML

问题

我获得了初始HTML代码,但没有DOM操作(即添加的组)。更改等待时间或在IE中向下滚动网页不会改变这一点。 如何访问最终/操纵的DOM?我更喜欢使用COM接口,不直接与IE交互或直接使用POST请求。

提前致谢。

1 个答案:

答案 0 :(得分:0)

有时只有索引号才有。在这种情况下,您可以通过遍历所有元素找到其中包含“Groups”的Index元素(对于我来说可能有两个,一个在侧栏中,一个在主要部分上),然后备份一个几个元素(介于4和8之间 - 我用4 - 应该显示你想要的东西)来找到包含元素列表的包含元素。像这样:

    ; source := wb.document.getElementsByTagName("body")[0].innerHTML
    i = 0
    loop, % wb.document.all.length
       {
       source := wb.document.all(a_index).innerHTML
       IfEqual, source, Groups
          {
          i += 1
          ifequal i, 2
             {
             source := wb.document.all((a_index - 4)).innerHTML
             break
             }
          }
       }
    msgbox %source%

H个,