Selenium VBAを使って自動でブラウザーを操作してスクショをExcelに張り付けてみたテストエビデンス取得自動化の秘技(前編)(3/4 ページ)

» 2014年08月21日 18時00分 公開
[薬師寺国安PROJECT KySS]

記録が終わるとVBAのコードが生成される

 その後、表示された画面から、@ITのいろいろなページに遷移してみた。ここまでの処理で、「赤い●」をクリックして、「テストの記録」をオフにする。すると図16のようなコードが記録されている。

図16 これまでのブラウジングが記録されたコード

 図16のコードはリスト1のようなコードになっている。

Public Sub Untitled()
  Dim selenium As New SeleniumWrapper.WebDriver
  selenium.start "firefox", "http://www.atmarkit.co.jp/"
  selenium.setImplicitWait 5000
  selenium.open "/"
  selenium.clickAndWait "link=Excelでプログラム作成を始めるメリットとマクロの基本"
  selenium.clickAndWait "link=Excelに入力フォームを作成、コントロールを追加、表示、ボタンでイベント実行"
  selenium.clickAndWait "link=@IT - アットマーク・アイティ"
  selenium.clickAndWait "link=ZIPファイルにパスワードを付ける"
  selenium.clickAndWait "link=Excelを別ウィンドウで複数同時に操作する"
  selenium.stop
End Sub 
リスト1 @ITサイト内をいろいろ遷移し記録されたコード(自動的に記録されたコード)

テストスイート全体の実行

 リスト1が記録された状態で、「テストスイート全体の実行」の右向き▲アイコンをクリックすると、これまでの@ITサイト内をブラウジングした手順が、スライドショーのように再現されて表示される。実際どのように表示されるか下記に動画を用意してみた。

※画像をクリックすると動画が再生

 この状態から、「テーブル」を見ると、コマンドが登録されている(図17)。

図17 「テーブル」にコマンドが登録された

 今回使っている主なコマンドは「Open」「clickAndWait」の2種類だ。「Open」は、読んで字のごとく、該当するページを開くコマンドだ。「clickAndWait」は、リンクをクリックするコマンドだ。

 図17のコマンドから直接実行する場合は、「Open」から下のコマンドを順番にダブルクリックしていくと、ブラウジングの過程が再現されて表示される。

 リスト1のコードを見ると分かるが、最終的には「Excelを別ウィンドウで複数同時に操作する」の画面が表示されることになる(図18)。

図18 最終的なページである「Excelを別ウィンドウで複数同時に操作する」の画面が表示された

VBAコードはテキストファイルで保存もできる

 以上のようにSelenium VBAはWebサイトでの手順を記録し、VBAのコードに書き出してくれる。書き出されたVBAコードは、[ファイル]→[テストケースをエクスポート]と選択し、「VBA / Remote Control」を選択して任意の場所に保存できる。

 拡張子は「.txt」のテキストファイルでいいだろう。今回の記録コードを「atmarkIT.txt」としてエクスポートしてみた。保存された結果を開いてみると、図19のように保存されている。

図19 検索結果のコードがテキストファイルとして書き出された

 改行も何もない状態で保存されているが、これをExcelからVBE(Visual Basic Editor)を起動して、標準モジュール内にコピペすれば、一連の検索を実現できるマクロが作成できる。

 ただし、参照の設定で「SeleniumWrapper Type Library」を参照する必要があるが、この参照設定については後ほど解説する。

 先にも書いたが、この図19のコードを、ExcelのVBEから標準モジュールを追加して、このままのコードをコピー&ペーストしても問題なく動作する。ただし、「Selenium IDE」で「Google」を使用した検索結果を表示させるような一連の操作では、そのままコードをコピペしても動作しない場合があるので、注意が必要だ。

 ここまでは、Selenium VBAの使い方をメインに解説したが、今回の本題は、エビデンスとしてスクショをキャプチャし、テスト仕様書や納品書に張り付けていく作業をメインとしているので、スクショの自動取得と張り付けが本筋になるだろう。

 そこで、次ページからは「SeleniumWrapper Type Library」を参照して、スクショを自動的に取得して張り付けるVBAのコードを作成する。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。