【问题标题】:Filling some web form programmatically using WebBrowser WPF control使用 WebBrowser WPF 控件以编程方式填充一些 Web 表单
【发布时间】:2011-12-13 05:38:27
【问题描述】:

我需要在我的 WPF 应用程序的某些网页中预先填写一些表单(该网页在外部网站中),我正在使用 WPF WebBrowser 控件。

有什么办法吗。

我有一些建议:模拟键盘敲击并使用 Tab 键在字段中移动,(如何执行此操作)。

编辑

所需的形式是如此复杂,元素的名称是动态的,但它们始终保持相同的顺序。

【问题讨论】:

  • 如果这个外部网站想让你这样做,它会提供 API。
  • 没有API,但我不会在非法的地方滥用它!
  • 大多数时候,字段的名称/ID 是静态的,易于发布自动答案。但如果他们像你说的那样是动态的,那么这意味着他们不希望你以编程方式发布这篇文章。
  • 无论如何我都会这样做,因为他们没有明确的法律预防措施!

标签: c# .net wpf web


【解决方案1】:

如果您想提交表单,请勾选此项

     // get the document
     mshtml.IHTMLDocument2 doc = ((mshtml.HTMLDocumentClass)webBrowser1.Document);

     // set a variable
     ((mshtml.IHTMLElement)doc.all.item("q")).setAttribute("value", "my input...");

     // click a button
    ((mshtml.HTMLInputElement)doc.all.item("btnI")).click();

命名空间mshtml 位于Microsoft.mshtml 程序集中。

只需添加参考 Microsoft.mshtml。

希望对你有帮助

【讨论】:

  • 它是一个命名空间。只需添加参考 Microsoft.mshtml。
  • 它存在于任何带有.net的机器上还是应该单独部署?
  • 您可以将引用设置为“本地副本”(程序集是您的 bin 文件夹的一部分),以确保它随时可用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 2011-02-18
  • 2013-07-08
  • 2016-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多