2012-10-10 32 views
1

*使用HTML對象庫VBA *(CAS設置爲瀏覽器實例(SHDOCVW))邏輯循環,直到網頁元素是沒有什麼

Set HTMLDoc = CAS.document.frames("MainFrame").document 'pull the main frame  

Do Until Not HTMLDoc Is Nothing 
DoEvents 
Loop 

我不認爲這是因爲正確的,它會只有一次設置HTMLDoc,如果它沒有,它會一直反覆循環,檢查它是什麼,但因爲它只被調用一次。一個更好的方法,imho,可以檢查一個元素並循環,直到元素存在,因爲頁面可以加載,但是我從數據庫中拉出的元素需要花費半秒左右的時間。我只是不知道如何編寫循環來繼續設置htmldoc,然後繼續檢查其中的元素不是什麼。 (該點是這樣即使我等待計時器心不是等待足夠長的時間,它不應該繼續,直到元素存在)

回答

2

如果你想等待一個特定的元素:

Dim el As Object 

    Do 
     Set el = Nothing 
     On Error Resume Next 
     Set el = CAS.document.frames("MainFrame").document.getElementById("idHere") 
     On Error GoTo 0 
     DoEvents 
    Loop While el Is Nothing 

你可能想建立儘管在最大的等待時間,所以你不會無休止地循環,如果由於某種原因該元素永遠不會出現。

+0

感謝您的洞察! –