我编写了以下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
非常感谢您的帮助。
由于 奥雅纳
答案 0 :(得分: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