Seleniumでキャプチャを取得する拡張コマンド:captureScreenshot

captureScreenshotをHTMLのテストケースで実行する方法の続き。


URLを指定して、キャプチャを出力できることが分かったので、自前でコマンドを作成してみました。
以下から、コマンドを記述したuser-extensions.jsと、起動用のバッチファイルをダウンロードできます。


HTMLのテストケースでは、captureScreenshotというコマンドで利用できるようにしています。





コマンド名captureScreenshot
第一引数fileName キャプチャのファイル名
第二引数withTimestamp タイムスタンプをつけるかどうか(true/false)


テストケース実行時に、user-extensions.jsを指定して実行すれば、コマンドが利用可能になります。
実行方法は、以下の通りです。

Selenium RCのInteractive Modeで起動する場合

Selenium Serverの起動オプションで、「-userExtensions」を指定して実行します。

java -jar selenium-server.jar -htmlSuite     -userExtensions user-extensions.js


selenium-rc-run.zipを解凍して得られる「runTestSuite.bat」を実行すると、サンプルが実行できます。

Selenium IDEから実行する場合

Selenium IDEを起動し、[オプション]→[設定]→[一般]タブ→[Selenium Core 拡張スクリプト(user-extensions.js)のパス]で、selenium-rc-run.zipを解凍して得られるuser-extensions.jsを絶対パスで指定してください。


また、テストケースを実行する前に、Selenium Serverを起動しておいてください。これは、Selenium Server経由で、キャプチャ画像を出力するためです。

「runServer.bat」を実行すると、Selenium Serverを起動できます。


上記の準備ができたら、テストケースを実行してください。
selenium-rc-run.zipを解凍して得られる「input/GoogleTest.html」を、Selenium IDEの[ファイル]→[テストを開く]から指定してすれば、サンプルが実行できます。


出力された画像は、こんな感じ。デスクトップ全体がキャプチャとして取られます。