WebBrowser控件.Document / .DocumentText超时?

时间:2013-01-19 20:52:02

标签: c# html .net-4.0 webbrowser-control

我需要从网站访问HTML源代码,以获取我使用Web浏览器控件编写的程序。程序本身将基于HTML操作事物,但我遇到了问题。 基于我所见过的东西,我看到允许控件更新文本的大约100 MS就足够了。

我有一个与触发器关联的计时器事件,以将WebBrowser.Document / WebBrowser.DocumentText保存到全局可访问的doc文件中,但我遇到的问题是存在指定的转换无效异常抛出。当我尝试查看DocumentText属性中的内容时,什么都没有出现。设置手表表示功能评估已被禁用,因为之前的功能评估已超时。

目前我只是尝试使用DocumentText功能打印Console.WriteLine,但即使这样也无效。

我想总结一下,我不知道我在做什么。有人可以指导我一个能够达到我想要的结果的解决方案或解决方案吗?

1 个答案:

答案 0 :(得分:0)

我在这里找到了解决问题的方法: http://social.msdn.microsoft.com/Forums/en/winforms/thread/642f59c5-84f1-4945-90d3-220592ace5f1

具体来说,解决方案是向WebBrowser.DocumentCompleted事件添加事件处理程序,如下所示:

    void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        if (Browser.ReadyState == WebBrowserReadyState.Complete)
            doc = Browser.Document;
    }

我认为症结在于if语句。如果这是真的,那么文档是可访问的,因此它可以放在任何地方(并且应该考虑在该事件处理程序中处理它)意味着除非您将所有内容存储在数组或列表中,否则每次导航到新的时都会覆盖它页)。