我使用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中没有错误消息,所以当然,上面的循环挂了。
我没有在驱动程序中看到任何可以指示下载成功或失败的属性,因此如何检测下载失败,最好在启动无限循环之前 ?
答案 0 :(得分:1)
只需在等待文件下载的循环中添加超时,这样就不会永远尝试。