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沒有錯誤信息,所以,當然,上面掛環。
我不認爲這會指示下載的成功或失敗的驅動程序中的任何屬性,所以我怎麼檢測到下載失敗,最好之前推出的無限循環?
只需在等待文件下載的循環中添加一個超時,以免它永遠不會嘗試。 – JeffC
終於回來了,謝謝@JeffC,這就是我最終做的。如果您想回答這個問題,我很樂意用一些神奇的互聯網點來獎勵您,可以兌換成獨角獸餡餅和彩虹片! – FreeMan
添加評論作爲答案。謝謝。 – JeffC