2012年3月29日木曜日

64bit版Windows7でSeleniumを使ったInternet Explorerのスクリーンショットを撮る

Seleniumでは実行したテストのスクリーンショットを撮ることができます。
IEのスクリーンショットを撮る場合は、下記のDLLを手順に従いインストールします。

snapsIE - Free, Open-Source, Scriptable Screen Capture Utility for IE

ここでレジストリに登録する際、regsvr32.exe を実行するのですが、記載されてある通りに実行するとエラーになります。
そこで、下記のサイトを確認すると、64bit版Windowsには2つのバージョンが存在しているとのことです。

Microsoftサポート Regsvr32 の使用法とエラー メッセージについて

DLLは32bit環境を想定しているので、32bit版の regsvr32.exe を使って実行します。

%systemroot%\SysWoW64\regsvr32.exe Snapsie.dll

これで登録できると思います。
テストケースには下記のような感じで実装します。

File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
File dest = new File("C:\\tmp\\hoge.png");
screenshot.renameTo(dest);

作成される画像の形式は、PNGです。
Temporaryディレクトリ内にPNGファイルが作成されるので、リネームする形で任意の場所に移動させます。
自動化された単体テストレベルのエビデンスを撮るなら、これで十分だと個人的には思います。
以下は、Javadocです。

org.openqa.selenium.TakesScreenshot

org.openqa.selenium.OutputType

Javadocを眺めていたら、com.thoughtworks.selenium.ScreenshotListenerなんてのもありますねぇ。TestNG用みたいだけど便利そうです。

0 件のコメント:

コメントを投稿