2014年3月13日木曜日

ラジオボタンを選択する : ExcelからFirefox自動制御(9)

【はじめに】

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://law.e-gov.go.jp/")
    Call driver.get("/cgi-bin/idxsearch.cgi")
 
    Call driver.findElementsByName("H_YOMI_GUN").Item(3).Click
End Sub

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

e-Govの法令データ提供システムのページを開き、 五十音索引の検索オプション(ラジオボタン)で「政令・勅令」を選択します。

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

続いて、WebElementCollectionのItemプロパティ(WebElementの配列)から目的の「政令・勅令」に対応する要素(4番目)を取得し、Clickメソッドを実行しています。