我有一些代码可以通过VBA中的Internet Explorer自动化从多个网站检索数据 . 我的代码在IE8中没有问题,但是在IE11中,在调用Internet Explorer对象的Navigate方法之后,Document和LocationURL没有更新;他们仍然参考以前显示的网站 . 这是重现问题的一些代码:
Sub Test()
Debug.Print "start"
Dim ie
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://en.wikipedia.org/wiki/Visual_Basic"
wait ie
Debug.Print "Current URL: " & ie.LocationURL
ie.Navigate "http://en.wikipedia.org/wiki/Microsoft_Office"
wait ie
Debug.Print "Current URL: " & ie.LocationURL
Set ie = Nothing
End Sub
Sub Wait(ie As Variant)
Do While ie.Busy
Application.wait DateAdd("s", 1, Now)
Loop
End Sub
当在具有IE8的机器上运行上述Test子时,它会打印两个不同的URL,这是预期的行为 . 但是,当我在使用IE11的计算机上运行相同的代码时,它会打印第一个URL两次 . 知道什么可能是错的吗?
Update :我找不到解决方案,所以我去为每个URL打开一个新的IE窗口 .
2 回答
THX,你帮帮我了 . W7 Ultimate 64bit捷克,IE11,VBA in Microstation V8i我使用的代码如下:
我不熟悉您正在使用的VBA IE自动化,但听起来您遇到的问题与IE11上的Selenium WebDriver相同 .
您可能需要遵循Selenium Wiki中提供的相同步骤 .
http://code.google.com/p/selenium/wiki/InternetExplorerDriver
希望能解决您的问题!