2014年3月14日金曜日

チェックボックスを選択する : ExcelからFirefox自動制御(10)

【はじめに】

SeleniumVBAを用いて、VBA (ExcelやWordなど) からFirefoxを自動制御する方法のサンプルコードを掲載しています。

動作対象は、SeleniumVBAの仕様に準じ、Microsoft Office2003 - 2013、Firefox Ver.8以降です。
(手元では、SeleniumVBA  v1.0.18.0 に、Windows7 + Firefox27.0.1, Windows8.1 + Firefox27.0.1の組み合わせで動作確認しています。)

サンプルコードは、SeleniumWrapper Type Library を参照設定すれば、コピー&ペーストで動作するように作成しています。


【サンプルコード】

Sub StartFirefox()
    Dim driver As New SeleniumWrapper.WebDriver
    Call driver.Start("firefox", "http://shinsei.e-gov.go.jp/")
    Call driver.get("search/servlet/Procedure?CLASSNAME=GTAEGOVMSTSEARCH")
 
    Dim collection As WebElementCollection
    Set collection = driver.findElementsByName("HushoSeqNo")
    collection.Item(0).Click
    collection.Item(1).Click
    collection.Item(2).Click
    collection.Item(3).Click
End Sub

【サンプルコードの解説】

e-Govの行政手続き案内のページを開き、検索対象の府省(チェックボックス)を適宜選択します。

チェックボックスも、ラジオボタン同様、HTMLコード自体はinputタグなので、第9回(ラジオボタンを選択する)と同じ扱いとなります。

チェックボックスは、同一Nameのinput要素で構成されるため、findElementsByNameメソッドで、チェックボックス要素すべて(WebElementCollectionクラスのインスタンス)を取得しています。

続いて、WebElementCollectionのItemプロパティ(WebElementの配列)から、適宜要素を取得し、Clickメソッドを実行しています。