last update 2017年1月20日 15:37

SeleniumBasic備忘録(Excel VBAでInternet Explorerなどを操作)

seleniumbasic_matome_1_sh

WEB自動化ツール「Selenium」を Excel VBA で使える「SeleniumBasic」について、使い方のメモを残しておきます。

SeleniumBasic 豆知識

  • SeleniumBasic は、昔 Selenium VBA という名前だった。
  • SeleniumBasic インストール時、各種WebDriverも一緒にインストール可能。つまり、いろんなブラウザを操作できる。
  • サンプルは基本的に Firefox を前提にしている。というか動作確認は Firefox のみと書かれている。

SeleniumBasicの導入

SeleniumBasic をダウンロード&インストール(Download から)

インストール時はWebDriverも一緒にインストールする。
seleniumbasic_matome_5_sh

Excel VBA エディタの「ツール」→「Selenium Type Library」にチェック
seleniumbasic_matome_4_sh

Internet Explorer を使う際は、Internet Explorer Driver 固有の設定や注意点を意識すること。(Required Configuration を確認のこと)

特に、IE 11ではレジストリ設定が必要なので忘れない。(手元の環境では32bit版向けの設定でいけた。)

SeleniumBasic向けのコードの書き方

こんな感じで Excel VBA を書く。(適当に書き換えてください。)

Sub SeleniumTest()
  Dim driver As New IEDriver
  driver.Get “http://teradas.net”
  
  driver.FindElementByName("username").Clear
  driver.FindElementByName("username").SendKeys "somebody"
  
  driver.FindElementByName("password").Clear
  driver.FindElementByName("password").SendKeys "complexpassword"
  
  driver.FindElementByName("login").Click
  
' uncomment to wait or stop the browser if you want.
'  Application.Wait Now + TimeValue("00:00:15")
'  Debug.Assert 0

  driver.Quit

End Sub

上記では IEDriver を指定したが、他にも以下が指定可能。

  • ChromeDriver
  • FirefoxDriver
  • OperaDriver
  • PhantomJSDriver (画面無し軽量ブラウザ)

うまく動かない場合は、WebDriver の最新版を用意して SeleniumBasic のインストール先に上書きすると良い。

SeleniumBasic で使えるコマンドと使い方は以下が参考になる。

また、込み入った使い方は公式サンプルを参考にするとよい。

特に、ファイルダウンロード周りに関しては、「Example.xlsm」を見ると、IEではかなりトリッキーなことをやっていることが分かるので一見の価値あり。

コマンドリファレンスっぽいモノは見当たらないが、VBA のオブジェクトブラウザーから Selenium の各クラス内を見れば各メンバの一覧と使い方は確認できますし、最悪、オープンソースなのでCom周りのインターフェースを見ても分かるでしょ系。

実行完了時、ブラウザのウィンドウは自動で閉じられる。開発時など、それでは困る場合は適当に Application.Wait でウェイトを入れるか、 Debug.Assert 0 でブラウザを開いたまま停止させてもよい。

そんな感じ。しばらく色んな組み合わせで Selenium 触ってると思います。

コメントを記入