Как дождаться завершения загрузки файла перед закрытием Chrome? - PullRequest
0 голосов
/ 10 февраля 2020

Я использую Selenium VBA и Chrome для загрузки файла csv.

На некоторых более медленных ПК браузер закрывается до завершения загрузки.

Я использовал bot.Timeouts.PageLoad = 500000 и bot.Timeouts.Server = 500000 (где я объявил 'bot' как New ChromeDriver ранее). Это работает, когда мне нужно Chrome, чтобы дождаться, когда щелкнет ссылка, найдет элемент и т. Д. c. но, похоже, не оказывает никакого влияния, когда дело доходит до выполнения bot.Quit

Использование произвольного bot.Wait (5000) работает, но на некоторых ПК не нужно ждать так долго, а иногда ему нужно подождите дольше.

Есть ли способ заставить Chrome дождаться завершения загрузки перед запуском bot.Quit?

1 Ответ

0 голосов
/ 11 февраля 2020

Вот фрагмент кода l oop.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...