按登录按钮Excel Vba



我有下面的代码来登录代码中的网站。但是,没有单击登录按钮。我是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

您可以使用[tabindex='3']的CSS属性=值选择器。这通过其值为3的tabindex属性来针对登录按钮。

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

html页面上似乎有两个表单元素,登录是第二个。识别,然后提交表格。

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

元素集合的索引号是从零开始的。

最新更新