【问题标题】:Website Automation Using C# and WebBrowser使用 C# 和 WebBrowser 实现网站自动化
【发布时间】:2011-03-23 15:34:58
【问题描述】:

我正在构建一个应用程序,它在 WebBrowser 控件中打开一个网站,然后在字段中放置一些文本,然后依次单击几个按钮上的提交。

看看下面的代码...

var doc = webBrowser1.Document.GetElementById("ddlOnBoro"); doc.SetAttribute("SelectedIndex", "3"); var temp = doc.InvokeMember("change"); doc = doc.Document.GetElementById("iddOnstreet_txTextBox"); doc.SetAttribute("value", "ASTOR PLACE"); var adoc = doc.Document.GetElementById("Button6"); var getCrossStreets = adoc.DomElement as mshtml.HTMLInputButtonElement; adoc.RaiseEvent("onclick");

第一行和最后 3 行运行良好,甚至中间 2 行运行良好,但是当我在最后一行代码中 RaiseEvent("onclick") 时,文本框的值在提交之前变为空白,即使我已将其设置在第 5 行的代码。

该网站内置于 ASP.NET 中,我认为这是 ViewState 搞砸了。

有什么想法吗?

【问题讨论】:

  • 你为什么要写这样的应用程序?
  • 你考虑过像 Watir 这样的东西吗? (watir.com)

标签: c# browser


【解决方案1】:

http://watin.org/ 基于 Watir 并允许对网站进行单元测试。它还可以用于输入表单数据、从网站抓取数据等。它非常适合与 C# 一起使用。请不要将其用于邪恶目的。

如果您在 IE 中访问网站,单击按钮时文本框会清除吗?如果您尝试手动复制程序尝试执行的操作并且没有发生相同的事情,那么您可能会遗漏一些东西。 例如,在前三行中,您调用了“change”事件(我认为这实际上是“onchange”),但在接下来的 2 行中您没有这样做。只需查看它,这是你的代码和手工编写的唯一区别。

【讨论】:

    【解决方案2】:

    请参阅以下文章。

    它提供了一个关于如何使用 WebBrowser 将搜索文本自动填充到 Google 的小示例。我会从这个开始,然后尝试使用不同的字段名称输入您自己的网站。

    C# Auto click button and auto fill form

    【讨论】:

      猜你喜欢
      • 2013-02-13
      • 2021-09-02
      • 2011-10-15
      • 2017-11-13
      • 2015-07-06
      • 1970-01-01
      • 2021-12-26
      • 2017-03-29
      • 2023-03-05
      相关资源
      最近更新 更多