読者です 読者をやめる 読者になる 読者になる

つれづれなるままに。

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

Selenium VBA その2

インストールから使い方まで、わかりやすく載っているのでつまづくところは無いと思うのですが、念のために。

「Downloads」ページから最新版をダウンロード。この中に必要なものはすべてパッケージングされています。
インストーラーになっているのでそのまま実行。
この段階でSeleniumIDEのプラグインもインストールされます。
(あまり無いと思いますが、このタイミングでSeleniumIDEがインストールされていなかったらどうなるんだろう・・・?)
ExcelのVBAから使用する際には 「マクロ」ー「参照設定」 で 「SeleniumWraper Type Library」をチェックします。
これでOK。お試しはお約束の検索処理。

Public Sub TC001()
   Dim selenium As New SeleniumWrapper.WebDriver
   selenium.start "firefox", "http://www.google.com/"
   selenium.open "/"
   selenium.type "name=q", "seleniumVBA"
   selenium.click "name=btnG"
   selenium.wait 1000
   selenium.getScreenshot().copy
   selenium.stop
   Sheets(1).Range("A10").PasteSpecial      
End Sub

サンプルそのままですが、実行すると、FireFoxが起動して検索、そしてScreenShotがシートに貼付けられます。
VBAなので F8を押してステップ実行ももちろん可能です。

このサンプルぐらいであれば命令を見ればなんとなくわかる感じですが、これ以外のメソッドにはなにがあるのか?
これまたVBAなので F2を押して オブジェクトブラウザを見ると Seleniumオブジェクトのメソッド/プロパティーが確認できます。
でも、どのメソッドが何をしてくれるのかわからないですよね。
この場合、Excelだととりあえず、自動記録してひな形になるソースを作って編集(かっこ良くいうとリファクタリング?)します。

なので、Seleniumも同様に。

ここで使うのがSeleniumIDEです。
FireFoxを起動して SeleniumIDEを開きます。
で、対象となるURLを開いて、リンクのクリックやテキストの入力
参考の為に、右クリックからコンテキストメニュー開いて store系のコマンドを入れてみるのも良いです。
で、「ファイル」メニューにあるエクスポートで、 「VBA RC」を選んでファイルに出力しましょう。
これで、スクリプトが作成されます。
後は、Excelマクロシートに貼付ければOK。どんな操作がどのメソッドになるかわかります。


これで、ネットの情報を集める際、いちいちコピーペーストを繰り返したり
スクレイピングのため IEオブジェクトのプロパティーツリーを ウォッチで確認しながら拾ったり
バージョンアップするごとにDOMの扱い方が変わるIEに泣かされることも(大分)減るはず。

何と言ってもロケーション指定に DOM だけでなく xPath や CSS指定が使えるようになるのがうれしい!!

まだ調べてないですが、ここから SeleniumGridは使えるのかな〜〜



こちらのサイトからダウンロード https://code.google.com/p/selenium-vba/