<link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=6549724036207680656&amp;zx=de779642-2f7e-4395-a5a7-135811de2179' rel='stylesheet'/>

2015年6月6日土曜日

C#でIEを自動制御しよう (8) ボタンをクリックする

■ボタンをクリックする

文字の入力に続いて、今回は、ボタンをクリックします。Googleの検索ボタンをクリックします。といっても、ボタンを示す要素を取得して、clickメソッドを呼び出すだけです。要素取得後は、C#らしさは微塵もなく、javascriptと何ら変わりありません。.getElementsByNameでは、IHTMLElementCollectionが返ってくるので、続いてitemメソッドで目的の要素を指定しています。

サンプルコード

public void ClickButton()
{
var IE = new SHDocVw.InternetExplorer();
IE.Visible = true;
object URL = "http://www.google.com/";
IE.Navigate2(ref URL);
IE.Wait();
var doc = IE.Document as mshtml.IHTMLDocument3;
doc.getElementById("lst-ib").innerText = "ぐるぐる";
IE.Wait();
//検索ボタンをクリック item(index:) or item(name:) で指定可能
doc.getElementsByName("btnK").item(index:0).click();
}
view raw test.cs hosted with ❤ by GitHub

補足説明

javascriptの場合に比べて、itemメソッドの指定方法がちょっと違う感じでしょうか。上記サンプルコードのコメントに記載しているように、itemメソッドは、第1引数がnameの指定、第2引数がindexの指定となっています。