【问题标题】:How do I detect a failed download in Chrome using SeleniumBasic?如何使用 SeleniumBasic 在 Chrome 中检测失败的下载?
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-08-13
    • 2021-10-12
    • 1970-01-01
    • 2011-05-04
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多