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

本文关键字:文档 导航 html C#WebBrowser | 更新日期: 2023-09-27 17:58:44

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

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

现在我可以毫无问题地更改html元素的innerText。wb_email.Document.GetElementById("id4").InerText="Alexander";

但当我再次使用具有相同url的导航方法重新加载页面时,我得到一个null异常。他似乎找不到元素。

因此,我使用了Firefox的检查器来查看重新加载后htmlelement是否真的发生了变化。但是只有url在改变,html元素都是一样的。

我做错了什么?

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

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

WebBrowser类并不是为编辑其内部呈现的页面而设计的,因为它基本上只是嵌入式InternetExplorer实例的包装器。

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

webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // Access elements here
}