首页 文章

Internet Explorer自动化不适用于IE11

提问于
浏览
0

我有一些代码可以通过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 回答

  • 2

    THX,你帮帮我了 . W7 Ultimate 64bit捷克,IE11,VBA in Microstation V8i我使用的代码如下:

    Public explorer As Object
    ....
    Set explorer = CreateObject("InternetExplorer.Application")
    ....
    
    If InStr(explorer.LocationURL, "CAPTCHA") = 0 Then
    ...
    End If
    
  • 0

    我不熟悉您正在使用的VBA IE自动化,但听起来您遇到的问题与IE11上的Selenium WebDriver相同 .

    您可能需要遵循Selenium Wiki中提供的相同步骤 .

    仅对于IE 11,您需要在目标计算机上设置一个注册表项,以便驱动程序可以维护与其创建的Internet Explorer实例的连接 . 对于32位Windows安装,您必须在注册表编辑器中检查的密钥是HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE . 对于64位Windows安装,密钥为HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE . 请注意,FEATURE_BFCACHE子项可能存在也可能不存在,如果不存在,则应创建该子项 . 要点:在此项中,创建名为iexplore.exe的值为0的DWORD值 .

    http://code.google.com/p/selenium/wiki/InternetExplorerDriver

    希望能解决您的问题!

相关问题