我通过带有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请求。
提前致谢。
答案 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个,