2014年3月9日日曜日

ボタンをクリックする : ExcelからFirefox自動制御(5)

【はじめに】

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://www.google.com/")
    driver.get ("/")
    driver.findElementByName("q").sendKeys ("ぐるぐる")
    driver.findElementByName("btnK").Click
End Sub

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

http://www.google.com/ を表示し、検索ボックスに「ぐるぐる」と入力し、検索します。

第4回(テキストボックスに文字を入力する)のコードで、http://www.google.com/ を表示した検索ボックスに"ぐるぐる"という文字を入力した後、
「Google検索」ボタンをクリックします。

WebElementクラスのClickメソッドで、クリックします。(マウスによるクリックをエミュレーションします。名前のままですね…。)

VBAでIEの自動制御をされたことのある方向けのTips

SeleniumVBA (というか、ラップ元のSelenium)では、通常、明示的にWait操作を行う必要はありません。

指定された要素が存在しない場合は、所定の時間(setImplicitWaitメソッドで設定可能)、探索し、存在しない場合に、例外を投げるように作られています。