-1

サードパーティ アプリケーションへのログインを自動化するために、以下の VBA コードを作成しました。以下のコードを実行すると、Internet Explorer ブラウザーのみが開き、リンクに移動して何もしません。ここに私のコードがあります:

Sub Login_Aravo()

Dim ie

Dim sURL As String

On Error GoTo Err_Clear

sURL = "https://demo.aravo.com/"

Set ie = CreateObject("InternetExplorer.Application")

ie.Visible = True

ie.navigate sURL

Do

' Wait till the Browser is loaded

Loop Until ie.readyState = READYSTATE_COMPLETE

ie.Document.all.Item("j_username").Value = "Nothing" 'Enter your username here

ie.Document.all.Item("j_password").Value = "Nothing" 'Enter your password here

ie.Document.all.Item("login").Click


' oBrowser.Refresh ' Refresh If Needed

Err_Clear:

If Err <> 0 Then

'Debug.Assert Err = 0

Err.Clear

Resume Next

End If

End Sub

あなたの助けは大歓迎です。

ありがとうアラップ

4

1 に答える 1

1

ゆっくりとステップ実行すると、コードが機能します。

問題は、リダイレクトするページをロードしているため、最初のページがロードされた後に READYSTATE 完了を誤ってトリガーしていることです。

これを修正する最も簡単な方法は、最終的にロードするページをロードすることです。sURL を次 sURL = "https://demo.aravo.com/aems/login.do"のように変更すると、コードは完全に機能します。

または、最初のループの後に、ログイン ページがロードされたことを確認するために待機する 2 番目のループを作成することもできます。このようなもの:

On Error Resume Next
 'This will loop until the correct page loads.
 Do
     Err.Clear
     ie.document.all.Item("j_username").Value = ""
 Loop Until Err.Number = 0
于 2012-10-29T14:07:29.603 に答える