我想在Excel VBA中做一些網頁抓取。這是我遇到的麻煩的部分代碼:Excel VBA:在Internet Explorer中等待JavaScript執行
IE.Navigate URL
Do
DoEvents
Loop While IE.ReadyState <> 4 Or IE.Busy = True
Set doc = IE.document
運行此doc
包含仍然在其未執行使用JavasScript HTML後。 這是一個還沒有被執行的腳本的簽名:
<SCRIPT type=text/javascript>
goosSearchPage.Initialize(...)...;
</SCRIPT>
我可以做Application.Wait(Now + TimeValue(x))
等待執行,但是這確實是不盡如人意,隨着時間的腳本需要執行的金額是根據變化很大在輸入。
有沒有辦法等待腳本完成評估或直接在doc
對象中直接評估腳本?
是否有腳本運行的結果,您可以檢查?頁面元素是否被創建,或者某些表單值是否被填充? AFAIK沒有「scriptfinishedrunning」事件,因此您必須檢查腳本的輸出或結果。如果不清楚腳本的功能,很難多說些什麼。 –
謝謝蒂姆,這是一個好主意,雖然我覺得自己有點愚蠢。我只是檢查SearchPage.Initialize是否仍在體內。 –