Windows窗体WebBrowser控件显示网页,但innerHTML不包含网页上显示的文本

时间:2014-12-25 23:16:52

标签: c# html screen-scraping

我正在使用Visual Studio 2013和C#5.0开发包含WebBrowser控件的Windows窗体应用程序。 当我做“webBrowser.Navigate(new Uri(loginUrl));”我在Windows窗体中看到一个网页。 如果我将光标移到WebBrowser窗口上并执行“查看源代码”,我会看到HTML,和 如果我将HTML复制并粘贴到记事本中,我可以找到我正在寻找的文本。

但如果我这样做:

  var document = webBrowser.Document;
  var documentAsIHtmlDocument3 = (mshtml.IHTMLDocument3) document.DomDocument;
  var sHTML = documentAsIHtmlDocument3.documentElement.innerHTML;

sHTML不包含我正在寻找的文字。

为什么不呢?任何建议将不胜感激。

查尔斯

1 个答案:

答案 0 :(得分:0)

我使用了您的代码,并且能够看到网页的内容。

我在表单中添加了一个按钮,并在加载网页后单击它。

如果我尝试从窗体的Load事件处理程序中的webBrowser组件访问该文档,则该文档为null,但它不会抛出空指针异常。看起来代码运行了,但事实并非如此。只有通过添加try-catch块才能检测到异常。