从WPF浏览器控件加载动态HTML

时间:2016-10-05 04:55:39

标签: javascript c# html wpf

我在我的项目中使用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加载。

1 个答案:

答案 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;