Excel VBA自动登录使用虚拟键盘登录到网页



我正在尝试通过VBA登录此网页:

Sub scraping()
    Dim IE As Object
    Dim UserName As String
    Dim Password As String
    Dim LogonForm As HTMLFormElement
    Dim SubmitInput As HTMLInputElement
    UserName = "XXXXXXXXx"
    Password = "XXXXXXXXX"
    With Session
        Set IE = New InternetExplorer
        With IE
            .Navigate "https://www.unicajabanco.es/PortalServlet?pag=1110902071492&menu0=particulares"
            .Visible = True
            Do Until (.READYSTATE = 4 And Not .Busy)
                DoEvents
            Loop
            Set LogonForm = .document.datos
            With LogonForm
                .user.Value = UserName
                .clave.Focus
                .clave.Value = Password
                For Each SubmitInput In .getElementsByTagName("INPUT")
                    If InStr(SubmitInput.getAttribute("alt"), "de Banca") Then
                        SubmitInput.Click
                        Exit For
                    End If
                Next
            End With
        End With
    End With
End Sub

但是,使用id="clave"的输入具有一个虚拟键盘以输入密码。

我尝试使用.clave.Value = Password填充clave输入,但是当我单击ENTRAR按钮时,未识别密码。是我单击了ENTRAR按钮,而clave输入中没有任何值。

我也尝试过此代码,但它不起作用:

For Each SubmitInput In .getElementsByClassName("tecla")
    If InStr(SubmitInput.getAttribute("onclick"), "W") Then
        SubmitInput.Click
        Exit For
    End If
Next

For Each SubmitInput In .getElementsByTagName("div")
    If InStr(SubmitInput.getAttribute("onclick"), "W") Then
        SubmitInput.Click
        Exit For
    End If
Next

如果我能获得一些帮助输入密码并提交表格的帮助。

这是银行网站,它具有额外的安全功能,可以保护其用户免受黑客攻击。

如果您检查了页面源,则通过将其写入页面而不是在实际的HTML中写入页面来创建某些HTML - 您的clave输入就是一个示例。

document.write('<input id="clave" class="campo" name="clave" maxlength="8" onBlur="blurVirtualKeyBoard(); if (this.value=='') datos.tipoTeclado.value='';" onClick="if (this.value=='') datos.tipoTeclado.value='';" onFocus="focusVirtualKeyBoard(this,'acceso-usuario',200,100);" readonly type="password"/>');

请注意,<input>具有readonly属性。因此,尝试直接设置<input>的值,除非您尝试删除属性。

某些人或许多人会认为试图删除此属性是可疑行为,因为鉴于网络搭配或自动化可能是合法的 - 尤其是在银行网站上;)

如果您进一步检查页面源,您将看到单击<input>中的单击启动一个称为acceso-usuario的脚本。您可以尝试按照该代码作为下一步的操作。

最新更新