その後、表示された画面から、@ITのいろいろなページに遷移してみた。ここまでの処理で、「赤い●」をクリックして、「テストの記録」をオフにする。すると図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サイト内をブラウジングした手順が、スライドショーのように再現されて表示される。実際どのように表示されるか下記に動画を用意してみた。
この状態から、「テーブル」を見ると、コマンドが登録されている(図17)。
今回使っている主なコマンドは「Open」「clickAndWait」の2種類だ。「Open」は、読んで字のごとく、該当するページを開くコマンドだ。「clickAndWait」は、リンクをクリックするコマンドだ。
図17のコマンドから直接実行する場合は、「Open」から下のコマンドを順番にダブルクリックしていくと、ブラウジングの過程が再現されて表示される。
リスト1のコードを見ると分かるが、最終的には「Excelを別ウィンドウで複数同時に操作する」の画面が表示されることになる(図18)。
以上のようにSelenium VBAはWebサイトでの手順を記録し、VBAのコードに書き出してくれる。書き出されたVBAコードは、[ファイル]→[テストケースをエクスポート]と選択し、「VBA / Remote Control」を選択して任意の場所に保存できる。
拡張子は「.txt」のテキストファイルでいいだろう。今回の記録コードを「atmarkIT.txt」としてエクスポートしてみた。保存された結果を開いてみると、図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.