.NET Core 3.1 WebBrowserControl 导航后读取 html
.NET Core 3.1 WebBrowserControl read html after navigation
在 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}”对象,对我来说毫无意义。
谢谢
在 Visual Studio 中的项目->添加引用->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 中有效。
在 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}”对象,对我来说毫无意义。
谢谢
在 Visual Studio 中的项目->添加引用->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 中有效。