无法在WebBrowser

时间:2016-12-25 18:46:27

标签: c# html winforms webbrowser-control nullreferenceexception

我正在尝试以编程方式将值设置为Web浏览器中的文本框,但它会抛出Null异常。

这是代码,我尝试过: -

webBrowser1.Document.GetElementById(“field-summary”)。InnerText =“Something”;

webBrowser1.Document.GetElementById(“field-summary”)。SetAttribute(“value”,“Something”);

我试图通过使用Quick Watch找到该元素,它就在那里,但我无法设置值。

因此,我也附上了手表的按扣。

enter image description here

这是错误,我得到了。

TimeSheet.exe中发生了'System.NullReferenceException'类型的第一次机会异常 mscorlib.dll中发生了'System.Reflection.TargetInvocationException'类型的第一次机会异常

我的问题是我正在尝试为innertext设置一个值,而我没有使用InnerText进行任何操作。但它仍然是错误。

我也试过了两个InnerText,也是值得的。但仍然无法。

我还使用Inspect作为参考附加了快照。

enter image description here

PS: 1.所有这些代码集都是在WebBrowser的DocumentCompleted事件中完成的,但仍然无法... 2.我访问了其他一些页面中的其他元素(文本),并使用InnerText访问和设置它的值。但无法处理这个元素。

有人可以说明为什么会这样做,所以我能够理解它。

感谢。

2 个答案:

答案 0 :(得分:0)

可能是你的元素尚未加载。 在窗口加载事件处理程序中执行此操作。 您可以使用Jquery事件。

答案 1 :(得分:0)

从SO开始为我的问题找到一个可行的解决方案。

How to get HTML textbox value?

所以,以下代码对我有用。

dynamic elePrice = webBrowser.Document.GetElementById(" price")。DomElement; string sValue = elePrice.value;

感谢。