0

我需要从网站访问我正在使用 Web 浏览器控件编写的程序的 HTML 源代码。该程序本身将根据 HTML 进行操作,但我遇到了问题。根据我所见,我看到允许大约 100 毫秒的时间让控件更新文本就足够了。

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

现在我只是尝试DocumentText使用该Console.WriteLine功能打印,但即使这样也不起作用。

我想总而言之,我不知道我在做什么。有人可以指导我找到能够实现我正在寻找的结果的解决方案吗?

4

1 回答 1

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 语句。如果这是真的,那么文档是可访问的,因此它可能可以放在任何地方(并且应该考虑在该事件处理程序中处理它意味着除非您将所有内容存储在数组或列表中,否则每次导航到新的页)。

于 2013-01-20T19:49:31.360 回答