我使用Internet Explorer创建了一个vba脚本,以使用我的凭据登录网站。问题是脚本有时完美运行,但大多数时候它在点击sign in
按钮时失败,这意味着卡在那里。
Sub SignIn()
Const Url$ = "https://member.angieslist.com/app/search?categoryName=Plumbing&isMisspelling=false&query=Plumbing&categorySearchType=legacy&category=107"
Dim IE As New InternetExplorer, HTML As HTMLDocument
Dim oPass As Object, oMail As Object, oButton As Object
With IE
.Visible = True
.navigate Url
While .Busy Or .readyState < 4: DoEvents: Wend
Set HTML = .document
With HTML
Do: DoEvents: Loop Until .querySelectorAll("#login--login-email").Length > 0
Set oMail = .querySelector("#login--login-email")
oMail.Focus
oMail.innerText = "useremail"
Do: DoEvents: Loop Until .querySelectorAll("#login--login-password").Length > 0
Set oPass = .querySelector("#login--login-password")
oPass.Focus
oPass.innerText = "password"
Do: DoEvents: Loop Until .querySelectorAll("#login--login-button").Length > 0
Set oButton = .querySelector("#login--login-button")
oButton.Focus
oButton.Click 'It gets here stuck most of the times
End With
End With
End Sub
如何登录该站点而不会失败?
这可能会起作用...50/50 射击。
Sub SignIn()
Const Url$ = "https://member.angieslist.com/app/search?categoryName=Plumbing&isMisspelling=false&query=Plumbing&categorySearchType=legacy&category=107"
Dim IE As New InternetExplorer, HTML As HTMLDocument
Dim oPass As Object, oMail As Object, objElement As Object, objCollection As Object
With IE
.Visible = True
.navigate Url
While .Busy Or .readyState < 4: DoEvents: Wend
Set HTML = .document
With HTML
Do: DoEvents: Loop Until .querySelectorAll("#login--login-email").Length > 0
Set oMail = .querySelector("#login--login-email")
oMail.Focus
oMail.innerText = "useremail"
Do: DoEvents: Loop Until .querySelectorAll("#login--login-password").Length > 0
Set oPass = .querySelector("#login--login-password")
oPass.Focus
oPass.innerText = "password"
Set ElementCol = IE.document.getElementsByClassName("btn btn-sm btn-primary btn-block btn-flat")
ElementCol.Item(0).Click
End With
End With
结束子