访问IWebBrowser2 Document属性将返回空

时间:2013-01-04 02:26:30

标签: internet-explorer vba browser-automation

我正在尝试使用VBA自动从本地访问数据库输入Web数据。

导航到网站后,登录页面将重定向到主菜单。但是,IE对象的document属性不返回任何内容。

Dim htmlDoc As MSHTML.HTMLDocument

Set IE = CreateObject("InternetExplorer.Application")
IE.navigate "http://some.website.com.au/"
IE.Visible = True
With IE
    Do Until .ReadyState = 4
    Loop
End with  
htmlDoc = IE.Document 
' At this point VBA fails as the IE.Document property is empty
....

我怀疑问题是导航到网站后,登录页面是一个检查cookie并重定向的登录页面。如果我禁用cookie并使用代码登录它可以工作,但通过登录页面的问题是相同的。

我发现的唯一可靠信息是,对于HTML组件,DHTML页面不会附加文档。这似乎有点奇怪,因为IE实例显然还有一个文档。

我无法找到记录此问题的任何其他地方,因此如果您遇到这种情况或者您对MSHTML类有更好的了解,那么任何帮助或方向都会受到赞赏,以了解为什么会出现这种情况。情况下。

欢呼声,

威尔

1 个答案:

答案 0 :(得分:0)

根据@Larry的建议,尝试使用WinHttpRequest object

这是一个基本的GET请求,改编自Larry的blog(以防链接失效)。

Dim result As String
Dim myURL As String
Dim winHttpReq As Object
Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

myURL = "http://www.example.com/"

winHttpReq.Open "GET", myURL, False
winHttpReq.Send

result = winHttpReq.responseText