5

私は基本的に、いくつかのフォームを通過して自動的に完了する Web ブラウザー コントロールを持っています。これまでは簡単でしたが、ID または名前。(両方クリックできるようにする必要があります) 例:

送信ボタン

<td align="right" valign="middle" class="LeftSide" style="padding-right: 20; padding-top: 10;"><button class="Search" type="submit" tabindex="7"><b>Search</b></button></td>

リセットボタン

<td align="left" valign="middle" class="RightSide" style="padding-left: 20; padding-top: 10;" colspan="2"><button class="Search" type="reset" tabindex="8"><b>Clear</b></button></td>

これらのボタンの HtmlDocument を検索してクリックするにはどうすればよいですか? それらは次のようにネストされています。

<body><table><form><tr><td><button>'s
4

2 に答える 2

5

そのようなもの、多分?

public void ClickButton(string type) {
    var button = myWebBrowser.Document.GetElementsByTagName("button")
             .Cast<HtmlElement>()
             .FirstOrDefault(m => m.GetAttribute("type") == type);
    if (button != null)
        button.InvokeMember("click"); 
}

使用法

ClickButton("reset");
ClickButton("submit");
于 2012-05-04T05:05:29.200 に答える
2
<td align="right" valign="middle" class="LeftSide" style="padding-right: 20; padding-top: 10;"><input type="submit" value="Submit" /></td>

<td align="left" valign="middle" class="RightSide" style="padding-left: 20; padding-top: 10;" colspan="2"><input type="reset" value="Reset" /></td>


HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input");  
foreach (HtmlElement el in elc)  
{  
   if (el.GetAttribute("type").Equals("submit"))  
   {  
        el.InvokeMember("click");  
   }  
 }
于 2012-05-04T05:04:48.430 に答える