私が取り組んでいるこのテストでは、executeAsync()
を使用してテスト対象のページのイベントをキャッチしています。私は起こる予定のイベントの数を知りません、そして、それが捕まえられたそれぞれについて、.takeScreenshot()
でスクリーンショットを撮りたいと思います。現在、私はこのコードを使用しています:internを使用してexecuteまたはexecuteAsync内でスクリーンショットを取る方法
return this.parent
.setExecuteAsyncTimeout(5000)
.executeAsync(function(done) {
window.events = function(event){
if(event.message == 'takeScreenshot'){
return done(event);
} else if(event.message == 'endTest'){
return done(event);
}
};
}, [])
.then(function(event){
return this.parent
.takeScreenshot()
.then(function(data) {
//previously defined array to save the screenshots
bufferArray.push(data);
})
.end();
})
このコードは機能していますが、問題はそれだけで最初のイベントをキャッチするので、それが唯一のスクリーンショットを取ることで、その後、代わりに他のイベントを待っているのテストを終了します。コールバックの完了(イベント)を返すのではなく.executeAsync()
の中の.takeScreenshot()
に電話をかけることができるか誰にでも教えてください。