2014-04-29 76 views
0

我想打開一個網站。在該網站中有一個下載鏈接,點擊後會導致一個名爲「文件下載」的彈出窗口打開,其中有3個選項:打開,保存和取消當前取消選擇的位置。如果我點擊保存,然後打開另一個彈出,我必須點擊保存。我正在嘗試使用vb腳本自動執行此操作。代碼:使用VB腳本下載文件

Set IE = CreateObject("InternetExplorer.Application") 
IE.Visible = True 
IE.Navigate "www.abc.com" 

Do While IE.Busy 
    WScript.Sleep 100 
Loop 

Set Links = IE.document.getElementsByTagName("a") 

For Each Link In Links 

    If InStr(1, Link.href, "?task=downloadFile", vbTextCompare) > 0 Then 

    IE.Navigate Link.href 

    Do While IE.Busy 
     WScript.Sleep 100 
    Loop 
Set WshShell = CreateObject("WScript.Shell") 
WScript.Sleep 1000 

WshShell.Sendkeys "{TAB}" 
WScript.Sleep 1000 
WshShell.Sendkeys "{TAB}" 
WScript.Sleep 1000 
WshShell.Sendkeys "{TAB}" 
WScript.Sleep 1000 
WshShell.Sendkeys "{TAB}" 
WScript.Sleep 1000 
WshShell.Sendkeys "{ENTER}" 
WshShell.Sendkeys "{TAB}" 
WScript.Sleep 1000 
WshShell.Sendkeys "{ENTER}" 

    Exit For 
End If 
Next 

由於某些隨機窗口被選中,此代碼不起作用。請幫忙

+1

當你去看醫生時,你是否告訴他「我生病了」,讓他猜猜是怎麼回事,或者你描述了這些症狀?同樣的事情,請描述症狀... –

+0

讓我們來問一下:爲什麼這個代碼可以工作? – TheBlastOne

回答

0

忘掉SendKeys - 這非常不可靠,因爲其他窗口可以在任何時候竊取焦點。而應使用Microsoft.XMLHTTPADODB.Stream對象來下載文件,如this answer中所示。