【发布时间】:2017-11-04 06:37:57
【问题描述】:
我正在使用 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 脚本为下载生成一个唯一名称,但这不是我需要的文件名称,所以一旦我回到单个窗口,我会循环寻找默认名称的存在(这是一个公式 @ 987654324@),然后再将其重命名为我需要的名称。
downloadedFile = Dir(this.DestinationPath & defaultFileSpec)
While Len(downloadedFile) = 0
downloadedFile = Dir(this.DestinationPath & defaultFileSpec)
Wend
我第一次遇到了一个问题,Chrome 通知我下载失败,但 VBA 中没有错误消息,所以上面的循环当然挂了。
我在驱动程序中看不到任何指示下载成功或失败的属性,那么我如何检测下载失败,最好是在在启动无限循环之前?
【问题讨论】:
-
只需在等待文件下载的循环中添加一个超时,这样它就不会永远尝试。
-
终于回到这个问题上,谢谢@JeffC,这就是我最终要做的。如果您想对此做出回答,我很乐意奖励您一些神奇的互联网积分,可兑换独角兽屁和彩虹片!
-
添加了评论作为答案。谢谢。
标签: vba google-chrome selenium