如何在关闭Chrome之前等待文件下载完成?



我正在使用Selenium VBA和Chrome下载csv文件。

在某些速度较慢的 PC 上,浏览器会在下载完成之前关闭。

我用过bot.Timeouts.PageLoad = 500000bot.Timeouts.Server = 500000(我之前已经将"bot"声明为New ChromeDriver(。当我需要 Chrome 等到单击链接、找到元素等时,这有效,但在执行bot.Quit时似乎没有任何影响

使用任意bot.Wait (5000)有效,但在某些 PC 上,它不需要等待这么长时间,有时需要等待更长的时间。

有什么方法可以让 Chrome 等到下载完成再运行bot.Quit

这是 while 循环的代码片段。

Function getDownLoadedFileName(maxTimeInMins As int)
Dim startTime As Date
startTime = Now()
Dim downloadPercentage As int
Do While ElapsedTime(Now(),startTime) < maxTimeInMins 
downloadPercentage = driver.execute_script( "return document.querySelector('downloads-manager').shadowRoot.querySelector('#downloadsList downloads-item').shadowRoot.querySelector('#progress').value")
If (downloadPercentage = 100) Then
getDownLoadedFileName = driver.execute_script("return document.querySelector('downloads-manager').shadowRoot.querySelector('#downloadsList downloads-item').shadowRoot.querySelector('div#content  #file-link').text")
End If
Loop
End Function
Function ElapsedTime(endTime As Date, startTime As Date) 
Dim Interval As Date 
' Calculate the time interval. 
Interval = endTime - startTime 
' Format and return the time interval in seconds. 
ElapsedTime = Int(CSng(Interval * 24 * 3600))
End Function

相关内容

  • 没有找到相关文章

最新更新