我正在使用Selenium VBA和Chrome下载csv文件。
在某些速度较慢的 PC 上,浏览器会在下载完成之前关闭。
我用过bot.Timeouts.PageLoad = 500000
和bot.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