如何使用SeleniumBasic检测Chrome中的下载失败?

时间:2017-06-02 19:10:27

标签: vba google-chrome selenium

我使用SeleniumBasic v2.0.9,MS Access 2010和Selenium ChromeDriver来自动化一些文件下载(注意:我需要来自安全网站的文件,我没有测试我自己的网站)

当我点击"运行报告"按钮,Chrome中会打开一个新标签,它会运行PHP脚本来生成报告。我的代码循环查找要关闭的第二个窗口:

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

PHP脚本为下载生成一个唯一的名称,但它不是我需要的文件名,所以一旦我回到单个窗口,我循环查找是否存在默认名称在我将其重命名为我需要的名称之前,请输入名称(' sa "known part" & randomValue)。

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

我第一次遇到一个问题,Chrome通知我下载失败,但VBA中没有错误消息,所以当然,上面的循环挂了。

enter image description here

我没有在驱动程序中看到任何可以指示下载成功或失败的属性,因此如何检测下载失败,最好在启动无限循环之前

1 个答案:

答案 0 :(得分:1)

只需在等待文件下载的循环中添加超时,这样就不会永远尝试。