【问题标题】:Unable to set value to textBox control programatically in WebBrowser无法在 WebBrowser 中以编程方式为 textBox 控件设置值
【发布时间】: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 来访问和设置它的值。但无法处理这个元素。

有人能解释一下它为什么这样做,以便我能够理解它。

谢谢。

【问题讨论】:

  • 可能您尝试在元素加载到文档之前为元素设置值,例如在表单的加载事件中。您应该在WebBrowser conrtol 的DocumentCompleted 事件中找到该元素。
  • @RezaAghaei:您好,感谢您的回复。我只在 DocumentCompleted 事件中执行此操作.. 是否有任何其他问题与此相关..?
  • 也许是的,例如,当您的元素使用 ajax 请求加载或使用 angular 等客户端框架动态创建时。
  • 如果您分享了您尝试使用的网址,那么问题可以重现,否则该问题对其他用户没有用。
  • 嗨@RezaAghaei:我正在使用我的组织站点和凭据.. 有点困难...我想知道,还有其他方法可以解决这个空错误吗?

标签: c# html winforms webbrowser-control nullreferenceexception


【解决方案1】:

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

How to get HTML textbox value?

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

动态 elePrice = webBrowser.Document.GetElementById("price").DomElement; 字符串 sValue = elePrice.value;

谢谢。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-06-09
      • 2012-01-23
      • 1970-01-01
      • 2010-10-17
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多