Нажмите кнопку входа в систему Excel Vba - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть код ниже для входа на сайт в коде.Однако кнопка входа не нажимается.Я новичок в Excel VBA, что вы предлагаете, пожалуйста?

Dim HTMLDoc As HTMLDocument
Dim MyBrowser As InternetExplorer
Sub Myenter()

Dim MyHTML_Element As IHTMLElement
Dim MyURL As String
On Error GoTo Err_Clear
MyURL = "https://willemendrees.nl/fn/login/"
Set MyBrowser = New InternetExplorer
MyBrowser.Silent = True
MyBrowser.navigate MyURL
MyBrowser.Visible = True
Do
Loop Until MyBrowser.readyState = READYSTATE_COMPLETE
Set HTMLDoc = MyBrowser.document
HTMLDoc.all.id_username.Value = "amsterdam@willemendrees.nl" 
HTMLDoc.all.id_password.Value = "*****" 
For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input")
If MyHTML_Element.Type = "submit" Then MyHTML_Element.Click: Exit For
Next
End With
Err_Clear:
If Err <> 0 Then
Err.Clear
Resume Next
End If
End Sub

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Кажется, что на этой html-странице есть два элемента формы, и логин - второй.Определите, а затем отправьте форму.

HTMLDoc.all.id_username.Value = "amsterdam@willemendrees.nl" 
HTMLDoc.all.id_password.Value = "*****" 
HTMLDoc.getelementsbytagname("form")(1).submit

Номер индекса набора элементов начинается с нуля.

0 голосов
/ 04 декабря 2018

Вы можете использовать CSS attribute = value селектор [tabindex='3'].Это предназначается для кнопки входа в систему по ее атрибуту tabindex, значение которого равно 3.

HTMLDoc.querySelector("[tabindex='3']").Click

Всего:

Option Explicit
Public Sub AttemptLogin()
    Dim IE As New InternetExplorer
    With IE
        .Visible = True
        .Navigate2 "https://willemendrees.nl/fn/login/"

        While .Busy Or .readyState < 4: DoEvents: Wend

        With .document
            With .querySelector("#id_username")
                .Focus
                .Value = "amsterdam@willemendrees.nl"
            End With
            With .querySelector("#id_password")
                .Focus
                .Value = "***"
            End With
            .querySelector("[tabindex='3']").Click
        End With

        While .Busy Or .readyState < 4: DoEvents: Wend

        Stop '<== Delete me later
        .Quit
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...