Web アルバム アプリケーション用の一連の Selenium テストを作成しています。画像が実際に表示されるかどうか (有効な画像データが含まれているかどうか) をテストしたいと思います。そのようなことは可能ですか?
4 に答える
画像の src は期待どおりですが、画像がページに表示されないという同様の状況に直面しました。
JavaScriptExcecutor を使用して、画像が表示されているかどうかを確認できます。
次のコードを使用します - WebElement (画像) を渡します -
Object result = ((JavascriptExecutor) driver).executeScript(
"return arguments[0].complete && "+
"typeof arguments[0].naturalWidth != \"undefined\" && "+
"arguments[0].naturalWidth > 0", image);
boolean loaded = false;
if (result instanceof Boolean) {
loaded = (Boolean) result;
System.out.println(loaded);
}
これを行うことで、画像が実際に Web ページに読み込まれたかどうかを確認できます。
Java を使用している場合、selenium にはそのeval
ような名前のメソッドがあります。JavaScript 文字列を指定すると、結果が文字列として返されます。たとえば、これを (1 行で) 試すことができます。
var req = new XMLHttpRequest();
req.open('get', document.getElementById('imageid').src, false);
req.send(null);
req.status==200
これは、ステータス 200 の場合は「true」を返し、それ以外の場合は「false」を返します。
TestPlanフロントエンドを Selenium に使用する場合は、いくつかのオプションがあります。画像の URL を取得したら、この URL を取得して、返されたヘッダーを調べることができます。手動で検査したい場合は、データをファイルに保存することもできます。または、Java でバリデーターを記述して、そのデータを取得し、実際にデコードされるかどうかを確認することもできます。
試してみたい場合は、サンプル スクリプトを作成します。必要に応じて、簡単な画像検証機能を実行することもできます。