首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按登录按钮Excel Vba

按登录按钮Excel Vba
EN

Stack Overflow用户
提问于 2018-12-04 23:03:32
回答 2查看 231关注 0票数 2

我有下面的代码登录到网站中的代码。但是,登录按钮未被单击。我是Excel VBA新手,您有什么建议吗?

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-04 23:07:43

您可以使用[tabindex='3']的CSS attribute = value选择器。这将通过值为3的tabindex属性来确定登录按钮的目标。

代码语言:javascript
复制
HTMLDoc.querySelector("[tabindex='3']").Click

整件事:

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2018-12-04 23:12:50

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

代码语言:javascript
复制
HTMLDoc.all.id_username.Value = "amsterdam@willemendrees.nl" 
HTMLDoc.all.id_password.Value = "*****" 
HTMLDoc.getelementsbytagname("form")(1).submit

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53615797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档