Макрос ниже предназначен для автоматизации процесса загрузки файлов с помощью веб-драйвера selenium и сохранения его каждый день в указанное время c. Макрос триггера времени вызывает его каждый день в указанное c время. Однако он работает нормально, иногда браузер chrome, вызываемый веб-драйвером selenium, выдает ошибку «Ошибка при загрузке». и код застревает в контроллере загрузки l oop до тех пор, пока файл не будет доступен в папке загрузки.
Есть ли способ обнаружить неудачную загрузку и повторно щелкнуть по кнопке загрузки?
I пытался показать только часть загрузки. Я не показывал другие данные форматирования и сохранения кодов, чтобы избежать путаницы. Если вы найдете какую-либо переменную, не связанную с этой задачей, пожалуйста, игнорируйте ее.
Вот ошибка chrome, которую я получаю
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