【发布时间】:2012-10-13 08:11:59
【问题描述】:
我正在尝试在 Excel VBA 中进行一些网页抓取。这是我遇到问题的代码部分:
IE.Navigate URL
Do
DoEvents
Loop While IE.ReadyState <> 4 Or IE.Busy = True
Set doc = IE.document
运行此doc 后,其中包含的 html 中仍有未执行的 JavaScript。
这是尚未执行的脚本的签名:
<SCRIPT type=text/javascript>
goosSearchPage.Initialize(...)...;
</SCRIPT>
我可以通过 Application.Wait(Now + TimeValue(x)) 等待执行,但这确实不能令人满意,因为脚本执行所花费的时间根据输入而变化很大。
有没有办法等待脚本完成评估或直接在 doc 对象中评估脚本?
【问题讨论】:
-
脚本运行的结果是否可以检查?是否创建了页面元素,或者填充了某些表单值? AFAIK 没有“scriptfinishedrunning”事件,因此您必须检查脚本的输出或结果。如果不知道脚本的作用,很难说更多。
-
谢谢蒂姆,这是一个好主意,虽然我觉得自己没有想出它有点愚蠢。我将检查 SearchPage.Initialize 是否仍在正文中。
标签: excel internet-explorer vba automation