VBA:等到浏览器加载多次

时间:2015-01-27 03:12:35

标签: vba

我已经在加载网页后正在制作一个填写表格的程序,它运作良好:

 Do
 Loop Until MyBrowser.readyState = READYSTATE_COMPLETE

在我的代码加载之后,填写表单并单击登录按钮。

出现了问题,我在新页面加载后一直试图点击按钮,所以我尝试使用相同的循环方法来完成此操作,但它无效。

我对自己说,这不可能,它必须工作!所以我尝试在youtube上制作搜索代码,我惊讶它确实有效,它搜索了一个视频然后我可以选择我想要的那个。

所以,如果它确实有效,为什么它不适用于我的登录页面?

我注意到该页面在登录后没有立即到达下一页,它会加载一个页面然后快速加载另一个页面并重新路由到该页面。

您是否知道如何等到浏览器达到这一点?

整个代码到现在为止:

Private Sub CommandButton3_Click()
Dim HTMLDoc As HTMLDocument
Dim MyBrowser As InternetExplorer


 Dim MyHTML_Element As IHTMLElement

Dim MyURL As String
 On Error GoTo Err_Clear
 MyURL = "url"
 Set MyBrowser = New InternetExplorer
 MyBrowser.Silent = True
 MyBrowser.navigate MyURL
 MyBrowser.Visible = True
 Do
 Loop Until MyBrowser.readyState = READYSTATE_COMPLETE
 Set HTMLDoc = MyBrowser.document
 HTMLDoc.all.user.Value = "user"
 HTMLDoc.all.pass.Value = "pass"
 For Each MyHTML_Element In HTMLDoc.getElementsByTagName("img")
 If MyHTML_Element.getAttribute("src") = "url" Then MyHTML_Element.Click: Exit For
 Next

Set MyBrowser.document = HTMLDoc

Do
 Loop Until MyBrowser.readyState = READYSTATE_COMPLETE

 Set HTMLDoc = MyBrowser.document
 For Each MyHTML_Element In HTMLDoc.getElementsByTagName("img")
 If MyHTML_Element.getAttribute("name") = "name" Then MyHTML_Element.Click: Exit For
 Next


Err_Clear:
 If Err <> 0 Then
 Err.Clear
 Resume Next
 End If
End Sub

0 个答案:

没有答案