当我两次使用ie.navigate时,文档保持不变

时间:2019-06-10 15:02:35

标签: excel vba internet-explorer

我有下一个代码(尝试了不同的变体,这是最新的):

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "URL1"
Do Until Not ie.Busy And ie.readyState = 4
    DoEvents
Loop

ie.document.getElementById("_58_login").Value = login
ie.document.getElementById("_58_password").Value = password
ie.document.getElementsByClassName("btn btn-primary")(0).Click


ie.navigate "URL2"
Do Until Not ie.Busy And ie.readyState = 4
    DoEvents
Loop

Set elements = ie.document.getElementsByTagName("title")
MsgBox elements(0).innerText

基本上,它首先导航到登录页面,然后登录,然后导航到具有我要抓取的信息的所需页面。浏览器确实可以正确导航到第二页。但是,尽管第二页已加载并且可以与之交互,但似乎“ ie.document”仍包含登录页(msgbox显示登录页的标题,并且我无法在第二页上显示GetElementsByTagName)。

我尝试在所有地方使用DoEvents循环。另外,我尝试使用Application.wait,但是会导致错误(应用程序方法“ wait”失败1004)。

所以我期望: 1.导航到登录页面并登录(单击按钮)。 2.导航到另一页,单击一些按钮(该网站使用了大量脚本,并使用脚本按钮进行进一步导航),最后获取包含数据的表。

0 个答案:

没有答案