【问题标题】:.NET Core 3.1 WebBrowserControl read html after navigation.NET Core 3.1 WebBrowserControl 导航后读取html
【发布时间】:2020-07-15 09:59:06
【问题描述】:

在 WPF Web 浏览器控件完成导航到页面后,我似乎无法读取 HTML。

我必须使用 WebBrowser 而不是 HttpClient 的原因是因为所需的网页需要先登录。

XAML:

<WebBrowser x:Name="wbBrowse" Source="anywebpage" LoadCompleted="wbBrowse_LoadCompleted">
</WebBrowser>

代码:

  private void wbBrowse_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
  {
      var doc = wbBrowse.Document;
  }

我尝试将 Document 转换为 HtmlDocument,但它崩溃了。这是一个“{System.__ComObject}”对象,对我来说毫无意义。

谢谢

【问题讨论】:

  • 它在您的示例代码中崩溃的地方...?你尝试了什么?
  • 如果我尝试将 .Document 转换为 (HTMLDocument) 或其他任何内容。

标签: c# wpf webbrowser-control .net-core-3.1


【解决方案1】:

在Visual Studio的Project->Add Reference->COM下添加对Microsoft HTML Object Library的引用,并将Document的值转换为MSHTML.IHTMLDocument2

private void wbBrowse_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
    MSHTML.IHTMLDocument2 doc = wbBrowse.Document as MSHTML.IHTMLDocument2;
    ...
}

这在 .NET Core 3.1 中确实有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-13
    • 2023-03-02
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    相关资源
    最近更新 更多