2016-12-09 31 views
3

仮想キーボードを使ってWebページに:エクセルVBA自動化へのログインは、私はVBAでこのWebページにログインしようとしている

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の入力を書き込もうとしましたが、ENTRARボタンをクリックするとパスワードが認識されません。 clave入力に値なしのENTRARボタンをクリックした場合です。

私もこのコードを試してみたが、それは動作しません:

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 

を私はいくつかの助けがパスワードを入力し、フォームを送信しますができればそれは理解されるであろう。

答えて

1

これは銀行のウェブサイトであり、ハッキングなどからユーザーを保護するための特別なセキュリティ機能を備えています。

ページソースを調べると、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>の値を直接設定しようとすると失敗します。あなたはさらに、ページのソースあなたを調べる場合)

を、特に銀行のウェブサイトで -

一部、または多くの人々は、Webスクレイピングや自動化が法的に疑わしいことができることを考えると疑問行動として、この属性を削除しようとして表示されます<input>をクリックすると、acceso-usuarioというスクリプトが開始されます。そのコードが次のステップとして行うことに従ってみてください。

+0

ご意見ありがとうございます。私はバーチャルキーでパスワードを入力します – Victor

関連する問題