2017-06-02 45 views
0

我使用SeleniumBasic v2.0.9,MS Access 2010和Selenium ChromeDriver自動執行一些文件下載(注意:我需要來自安全網站的文件,我沒有測試我自己的網站)。如何在使用SeleniumBasic的Chrome中檢測失敗的下載?

當我點擊「運行報告」按鈕時,Chrome會打開一個新選項卡,並運行一個PHP腳本來生成報告。我的代碼迴路尋找第二個窗口關閉:

this.Driver.FindElementByName(DOWNLOAD_LINK_TEXT).Click 
While this.Driver.Windows.Count > 1 
    DoEvents 
Wend 

的PHP腳本下載生成一個唯一的名稱,但它不是我需要的文件名,所以一旦我回到一個窗口,我循環尋找默認名稱的存在(這是一個公式"known part" & randomValue),然後我將其重命名爲我所需要的。

downloadedFile = Dir(this.DestinationPath & defaultFileSpec) 
While Len(downloadedFile) = 0 
    downloadedFile = Dir(this.DestinationPath & defaultFileSpec) 
Wend 

這是第一次,我打了一個問題,即Chrome的通知我,該下載失敗,但在VBA沒有錯誤信息,所以,當然,上面掛環。

enter image description here

我不認爲這會指示下載的成功或失敗的驅動程序中的任何屬性,所以我怎麼檢測到下載失敗,最好之前推出的無限循環?

+0

只需在等待文件下載的循環中添加一個超時,以免它永遠不會嘗試。 – JeffC

+0

終於回來了,謝謝@JeffC,這就是我最終做的。如果您想回答這個問題,我很樂意用一些神奇的互聯網點來獎勵您,可以兌換成獨角獸餡餅和彩虹片! – FreeMan

+0

添加評論作爲答案。謝謝。 – JeffC

回答

1

只需在等待文件下載的循環中添加一個超時,以便它不會永久嘗試。