导航后C#WebBrowser不同的html文档

时间:2014-04-16 21:16:59

标签: c# html document reload

我在C#中遇到了一个非常奇怪的问题:

首先,我使用WebBrowser控件和导航方法进行浏览。 wb_email.Navigate( “https://registrierung.web.de”);

现在我可以毫无问题地更改htmlelements的innerText。 wb_email.Document.GetElementById(“id4”)。InnerText =“Alexander”;

但是当我重新加载页面时,只需使用带有相同网址的导航方法, 我得到一个null异常。似乎他找不到元素。

所以我在Firefox上使用了一个检查器来查看重新加载后htmlelement是否真的发生了变化。 但只有网址正在改变,htmlelements都是一样的。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您只是在显示的页面中更改DOM。当您重新加载页面时,WebBrowser实例将再次从服务器刷新DOM并丢失您的更改。

WebBrowser类不是为编辑自身内部的渲染页而设计的,因为它基本上只是嵌入式Internet Explorer实例的包装器。

答案 1 :(得分:0)

在访问任何元素之前,请确保网站已完成加载。像:

webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // Access elements here
}