Повторите попытку загрузки, если Chrome при загрузке файла возникла ошибка Failed-Download Error - PullRequest
0 голосов
/ 17 февраля 2020

Макрос ниже предназначен для автоматизации процесса загрузки файлов с помощью веб-драйвера selenium и сохранения его каждый день в указанное время c. Макрос триггера времени вызывает его каждый день в указанное c время. Однако он работает нормально, иногда браузер chrome, вызываемый веб-драйвером selenium, выдает ошибку «Ошибка при загрузке». и код застревает в контроллере загрузки l oop до тех пор, пока файл не будет доступен в папке загрузки.

Есть ли способ обнаружить неудачную загрузку и повторно щелкнуть по кнопке загрузки?

I пытался показать только часть загрузки. Я не показывал другие данные форматирования и сохранения кодов, чтобы избежать путаницы. Если вы найдете какую-либо переменную, не связанную с этой задачей, пожалуйста, игнорируйте ее.

Вот ошибка chrome, которую я получаю

enter image description here

Dim AutoBot As Workbook
Dim strFile As String
Dim aFile As String
Dim CurrentTime As String

    aFile = Environ("USERPROFILE") & "\Downloads\Master*.xls"
        If Len(Dir$(aFile)) > 0 Then
            Kill aFile
        End If

Set AutoBot = Application.Workbooks("AutoBot.xlsm")

CurrentTime = Format(TimeValue(Now), "hh:mm AM/PM")
strFile = Environ("USERPROFILE") & "\Downloads\Master*.xls"

'---------------------------------------This Section Handles Chrome downloading procedure-------------------------------------------------------------------------------------
On Error GoTo Terminate
Dim Obj As New WebDriver
Dim ScripHistPATH As String, DownloadedScripHistFILE As String, ScripHistFILE As String

Obj.Start "chrome", ""
Obj.Get "https://ABCt.com/"
Obj.FindElementById("ContentPlaceHolder1_ddlUserProfile").SendKeys ("Admin") '>>>>> drop down option
Obj.FindElementById("ContentPlaceHolder1_btn_login").Click  '>>>>> click on submit option
Obj.FindElementById("ContentPlaceHolder1_Button1").Click   '>>>>> click download button

downloadChecker:
Application.Wait (Now + TimeValue("0:00:30"))   '>>>>> waits for 30 seconds
If FileExists(strFile) = False Then '>>>>> checks if the file is available in download folder.
    GoTo downloadChecker   '>>>>> loop if file is not available
End If                     '>>>>> End loop if file is available

Obj.Quit

Function FileExists(FilePath As String) As Boolean
Dim TestStr As String
    TestStr = ""
    On Error Resume Next
    TestStr = Dir(FilePath)
    On Error GoTo 0
    If TestStr = "" Then
        FileExists = False
    Else
        FileExists = True
    End If
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...