-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"代码完美运行。

或者,您可以在第一个循环之后进行第二个循环,以确保您的登录页面已加载。像这样的东西:

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 回答