【发布时间】:2017-05-10 11:19:00
【问题描述】:
我正在尝试以编程方式为 Web 浏览器中的文本框设置一个值,但它引发了 Null 异常。
这是代码,我试过了:-
webBrowser1.Document.GetElementById("field-summary").InnerText = "Something";
webBrowser1.Document.GetElementById("field-summary").SetAttribute("value", "Something");
我已尝试使用快速查看找到该元素,它在那里,但我无法设置值。
特此,我也附上了手表的按扣。
这是错误,我得到了。
在 TimeSheet.exe 中发生了“System.NullReferenceException”类型的第一次机会异常 mscorlib.dll 中发生了“System.Reflection.TargetInvocationException”类型的第一次机会异常
我的问题是我正在尝试为内部文本设置一个值,并且我没有对内部文本进行任何操作。但它仍然抛出错误。
InnerText 我都试过了,值也。但还是不行。
我还附上了快照,使用 Inspect 作为参考。
PS: 1.所有这些代码集都是在WebBrowser的DocumentCompleted事件中完成的,但仍然无法.. 2. 我在其他一些页面中访问了其他元素(文本),并使用 InnerText 来访问和设置它的值。但无法处理这个元素。
有人能解释一下它为什么这样做,以便我能够理解它。
谢谢。
【问题讨论】:
-
可能您尝试在元素加载到文档之前为元素设置值,例如在表单的加载事件中。您应该在
WebBrowserconrtol 的DocumentCompleted事件中找到该元素。 -
@RezaAghaei:您好,感谢您的回复。我只在 DocumentCompleted 事件中执行此操作.. 是否有任何其他问题与此相关..?
-
也许是的,例如,当您的元素使用 ajax 请求加载或使用 angular 等客户端框架动态创建时。
-
如果您分享了您尝试使用的网址,那么问题可以重现,否则该问题对其他用户没有用。
-
嗨@RezaAghaei:我正在使用我的组织站点和凭据.. 有点困难...我想知道,还有其他方法可以解决这个空错误吗?
标签: c# html winforms webbrowser-control nullreferenceexception