2017-04-13 5 views
0

私は、IEアプリケーションを介してGoogleとのやりとりをシミュレートしようとしています。私は必要なクラスを取得するためにDOMを通過しますが、.Clickクラッシュを引き起こすことはありませんが、それは何もしないアクション(ページが移動しません) - コードと下のHTMLのスクリーンショット:。何もしないアクション - IEシミュレーション

Option Explicit 

Private Sub Test_Automation() 
Dim ie, doc, eInput, eButton, eButtons As Object 
Dim sURL, sTest As String 

Set ie = CreateObject("internetexplorer.application") 
sURL = "https://www.google.co.uk/?gfe_rd=cr&ei=IpDvWK72LsjCaJCbjKAL&gws_rd=ssl" 
sTest = "Test" 

With ie 
    .Visible = True 
    .Navigate sURL 
End With 

Do While ie.Busy Or ie.readyState <> 4 
    DoEvents 
Loop 

Set doc = ie.document 

Set eInput = doc.getElementByid("lst-ib") 
Set eButtons = doc.getElementsByTagName("input") 

eInput.Value = sTest 

For Each eButton In eButtons 
    If (eButton.getattribute("name") = "btnK") Then 
     eButton.Click 
     Exit For 
    End If 
Next 

End Sub 

enter image description here

私がやっている上の任意のアドバイス間違ったことは素晴らしいだろう!

+1

おそらく 'eInputs.Value'は' Inputs.Value'でしょうか? – Amorpheuses

+0

あなたのコードにはいくつかの欠陥があります。どこでも 'eInputs'を定義していないので、エラーを投げる' eInputs.Value = sTest'は特にありません。これを読んでください:http://stackoverflow.com/help/mcveそしてあなたの質問を編集します。 –

+1

デバッグするときは、モジュールの上部で 'Option Explicit'を使うのが本当に役に立ちます。 – Amorpheuses

答えて

2

あなたは一番下にあなたのFor...Nextループを取り除くと、ボタンをクリックするこれでそれを置き換える得ることができます:

doc.forms(0).submit 

0は上をクリックして(例えば1または2のような)別の番号に変更することができます別のボタン。ページ上にクリック可能なボタンが複数ある場合は、試行錯誤して、クリックしたいボタンに一致する番号を見つけます。

+0

あなたは最高の答えを得ました!ありがとうございました! – Jeremy

関連する問題