つれづれなるままに。

webテストの自動化について備忘録のつもりで書いています

Selenium VBA

本家の Seleniumのバージョンが 2.33にあがったのを受けて それぞれの言語対応しているグループもバージョンアップしてますね。

最近 
Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応 (インプレスジャパン)
というのが一部で話題になっています。

そもそもなぜEXCELからIEを起動する必要があるのか?
ネット上の情報を集めてエクセルで管理したいからにほかなりません。
文字にすると「なんだそんなことか」と思いますが
実際のところ仕事でのデータ管理はExcelではないでしょうか。

で、どうするかというと、
とりあえず 手動でIEを起動し対象を開いてコピー&ペースト。
もう少し進むと、ペーストしたデータ部分を解析するセル関数を埋め込むか、vbaを作る。

もし、環境(サーバにできるPCなど)や技術(サーバーサイドの開発ができる)がそろっているのであれば
サーバサイドで収集し、データをCSVにして読み込めるように加工する
もしくはDBに収録してExcel側からバインドするなどの作り込みを行う。

と、いずれも手間ひまがかかります。

しかし、Excelにはvbaがあり、さらにCOMオブジェクト技術でIEをコントロールすることができます。
ゆえにvbaからIEを起動し、IE上のDOMを操作して値を取得仕様と思うのは当然の方向性ですね。
これだと動作環境が外界(サーバなど)を巻き込まず(ExcelとIEのみ)
windowsの世界だけで完結しているので、動作をコントロールすることが楽になります。
(タスクを使った自動実行など)

良いところばかりだけではないのは仕方が無いところですが・・・
windows環境はどうしてもバージョンアップによる仕様変更に追随する必要があります。
OS,EXCEL,IEそれぞれでつど仕様がかわるのは仕方が無いともいえますが結構大変です。

そこで、 seleniumVBAですよ。これを使えば、面倒な問題は一気に解決!!

と、いいたいところですが、これによる改善は
おそらく扱いにくいIEのDOMを使わなくてもすむと、いう点ぐらいかも。
まあ、これだけでもかなり高いポイントなんですが。
(実際にVBAでIEを起動してDOMを扱ったことがある人はわかると思います・・・)

閑話休題
seleniumVBAも 昨日 1.0.13.3にバージョンアップしました! という記事でした。