Selenium(selenese)でスクリーンショット撮ったった

すごい久しぶりにSeleniumと戯れてみたんですが、エビデンスでシナリオ終るたびにスクリーンショット撮ってる言うんで、アホらしいから自動化してみた。


参考にしたのはこちらのエントリ。
Seleniumでキャプチャを取得する拡張コマンド:captureScreenshot - 現場のためのソフトウェア開発プロセス - たかのり日記


テストの実行はSelenium RCでもSelenium IDEでもなく、ただのSeleneseからなんで、user-extension.jsをちょこっとだけ修正。

    // Seleniumが動作しているURL
    // SeleniumIDEで動作させている場合は、localhostに置き換える。
//    var url = location.protocol + "//" + location.host + ":" + location.port;
//    if (url == "chrome://selenium-ide:") {
//        url = "http://localhost:4444";
//    }
    var url = "http://localhost:4444";    // 常にココでいい

あと成功時のエビデンス撮りたいだけなんで、Selenium Server動いてないとかFirefoxで動かしたときに邪魔しないように Assert.fail() を軒並みコメントアウトしといた。


そんでもって、テストシナリオの最後に

<tr>
  <td>captureScreenshot</td>
  <td>filename.png</td>
  <td>true</td>
</tr>

ておまじないつけて、おしまい。
あとは付属の runServer.bat でSelenium Server立上げてテストを流すだけ。


ちなみに、やり方探して設置し終るまで正味2時間くらい。そんなん誰が気付いてやっときゃ良いものの意外にやれてないもんだ。
これがあたしの付加価値かというと、しょっぺぇ付加価値だぬ、とぢっと手を見る。(´・ω・`)


ps.
ここまでやったついでにGroovy+Scriptomで、Excelの報告書作るのも自動化してまうか?と思ったけど、それはまた後で。:-P


ps2.
Selenium RCのv0.9.2だと、captureScreenshotが組込まれているようだ。そんなのも知らないくらい久しぶりのSeleniumであった。やっぱ現場仕事やんなくなると隔世の感がありますね。
モダンな Selenium でスクリーンキャプチャ/スクリーンショット (Screen capture / Screen shot)方法 - Yamashiro0217の日記