使用C#和WebBrowser进行网站自动化

Uma*_* A. 7 c# browser

我正在构建一个应用程序,它在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");

第一行和最后三行工作正常,甚至中间2工作正常,但是当我在最后一行代码中使用RaiseEvent("onclick")时,文本框的值在提交之前变为空白,即使我已将其设置为第5行代码.

该网站内置于ASP.NET中,我认为这是混乱的ViewState.

有任何想法吗?

Der*_*ean 3

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

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