вход в систему через vba сбой: сообщение об ошибке истекло время ожидания - PullRequest
0 голосов
/ 15 апреля 2019

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

Отсутствует ли файл cookie и как его можно предоставить?

Sub Login()      'provokes timeout error from the server
  Dim IEApp As Object
  Dim ding As Object
  Dim IEDoc As Object  
  Set IEApp = CreateObject("InternetExplorer.Application")
  IEApp.Visible = True
  IEApp.navigate "https://www.mybank/banking"
  Do While IEApp.readyState <> 4: DoEvents: Loop
  Set IEDoc = IEApp.document
  On Error Resume Next 

  With IEApp.document
     Do While IEApp.readyState <> 4: DoEvents: Loop

     For Each ding In IEDoc.all             'username eintragen
         If ding.Name = "j_username" Then
            If Err = 0 Then
               ding.Value = "myUsername"
               On Error GoTo 0
               Err.Clear
               Exit For
            Else
               Err.Clear
            End If
         End If
     Next

     Do While IEApp.readyState <> 4: DoEvents: Loop

     On Error Resume Next
     For Each ding In IEDoc.all              'passwort eintragen
           If ding.Name = "j_password" Then
            If Err = 0 Then
               ding.Value = "myPassword"
               On Error GoTo 0
               Err.Clear
               Exit For
            Else
               Err.Clear
            End If
         End If
     Next  

     Do While IEApp.readyState <> 4: DoEvents: Loop  

     On Error Resume Next                     'button 'login'
     For Each ding In IEDoc.all               
           If ding.Title = "login" And ding.Type = "button" Then
            If Err = 0 Then
               ding.Click
               On Error GoTo 0
               Err.Clear
               Exit For
            Else
               Err.Clear
            End If
         End If
     Next  

  End With 

  Set ding = Nothing
  Set IEDoc = Nothing
  Set IEApp = Nothing
End Sub

1 Ответ

0 голосов
/ 15 апреля 2019

Можете ли вы попробовать это

Sub Login()      'provokes timeout error from the server
  Dim IEApp As Object
  Dim ding As Object
  Dim IEDoc As Object
  Set IEApp = CreateObject("InternetExplorer.Application")
  IEApp.Visible = True
  IEApp.navigate "https://www.mybank/banking"
  Do While IEApp.readyState <> 4: DoEvents: Loop
  Set IEDoc = IEApp.document
  On Error Resume Next

  With IEApp.document
     Do While IEApp.readyState <> 4: DoEvents: Loop

    With IEApp
        .document.getelementsbyname("j_username")(0).Value = "myUsername"
        .document.getelementsbyname("j_password")(0).Value = "myPassword"
    End With
...