Vb.net 有时无法获取.Document.Body.InnerHtml

Vb.net 有时无法获取.Document.Body.InnerHtml,vb.net,browser-automation,Vb.net,Browser Automation,下面的代码在第一次运行时起作用,但在后续运行时经常失败。 下面对失败的行进行了注释。我认为通过SHDocVw.ShellWindows循环会产生问题,我需要在再次运行之前清理一些东西。要复制问题,请在IE中打开google,然后运行此过程,重复。谢谢你的帮助。确切的错误是HRESULT中的异常:0x800A01B6。(请注意,这是更复杂代码的简化版本,如果设置了IE_测试,我实际上会多次重用它。) 我最终解决了这个问题,从任何过程中完全删除了.Quit()(直到程序关闭)。现在,我总是重复使用现

下面的代码在第一次运行时起作用,但在后续运行时经常失败。 下面对失败的行进行了注释。我认为通过SHDocVw.ShellWindows循环会产生问题,我需要在再次运行之前清理一些东西。要复制问题,请在IE中打开google,然后运行此过程,重复。谢谢你的帮助。确切的错误是HRESULT中的异常:0x800A01B6。(请注意,这是更复杂代码的简化版本,如果设置了IE_测试,我实际上会多次重用它。)


我最终解决了这个问题,从任何过程中完全删除了.Quit()(直到程序关闭)。现在,我总是重复使用现有的IE实例,而不是关闭和重新打开,这样可以避免错误

    Public IE_test As SHDocVw.InternetExplorer
    Sub TestIE()
    Dim shellWindows_3 As New SHDocVw.ShellWindows()
    Dim htmlDoc As String
    Dim link1 = "google.com"
    If IsNothing(IE_test) = True Then
        For Each ie_x As SHDocVw.InternetExplorer In shellWindows_3
            If ie_x.LocationURL.Contains(link1) Then 'find the google instance
                IE_test = ie_x
            End If
        Next
    End If

    With IE_test
        .Visible = True
        htmlDoc = .Document.Body.InnerHtml 'Fails here on second run
        .Quit()
    End With

    IE_test = Nothing
    MsgBox(Len(htmlDoc))

End Sub