我在我的项目中使用WPF webbrowser,我正在尝试捕获页面的HTML。这是相同的代码
private void Window_Loaded(object sender, RoutedEventArgs e)
{
webBrowser.Navigate("https://www.uptodate.com/contents/lassa-fever/print");
}
private void webBrowser_LoadCompleted(object sender, NavigationEventArgs e)
{
dynamic doc = webBrowser.Document;
var htmlText = doc.documentElement.InnerHtml;
MessageBox.Show(htmlText);
}
现在问题是: 消息框正确显示页面的内容,但如果我在代码中引用htmlText的值,则它不显示整个内容,但它仅显示已静态添加的HTML内容,不包括使用javascript插入的内容。
我在这里观察到的最奇怪的事情是htmlText为不同的可视化工具显示不同的输出,即当使用文本可视化工具查看htmlText时,它仅显示页面的静态内容,但是当使用HTML可视化工具查看它时,它显示所有预期的内容,包括HTML使用javascript加载。
答案 0 :(得分:0)
您可以尝试以下代码: -
HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("HTML");
if (elems.Count == 1)
{
elem = elems[0];
string Code = elem.OuterHtml;
}
<强>编辑:强>
您也可以尝试以下代码: -
var renderedHtml = doc.GetElementsByTagName("HTML")[0].OuterHtml;