按WebBrowser控件中的提交按钮

时间:2012-02-13 12:40:53

标签: c# webbrowser-control ui-automation ui-testing

我正在开发C#桌面程序来做一些自动发布

  1. 我在C#webbrowser control
  2. 中打开网页(带表格)
  3. 打开页面后,我在表单字段中填入数据(使用C#代码)。所以没有人工互动
  4. 我的问题是:如何自动将数据发送到服务器(换句话说,如何使用C#代码按提交按钮)?

3 个答案:

答案 0 :(得分:1)

基本上使用相同的代码来定位和填充字段,您可以遍历DOM以查找提交按钮并通过调用发送一次单击。

theElementCollection = WebBrowser1.Document.GetElementsByTagName("input");
    foreach (HtmlElement curElement in theElementCollection) {
        if (curElement.GetAttribute("id").Equals("login_button")) {
            curElement.InvokeMember("click");

答案 1 :(得分:0)

看看WatiN。但我个人会使用WebClientHttpWebRequest从/向服务器获取/发布数据

答案 2 :(得分:0)

如果您想提交表格,请查看

// 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的引用。