ビューポートサイズのタイルをキャプチャして完全なWebページのスクリーンショットを撮りたい。それはほとんど終わりましたが、私は約束が新しく、正しいやり方を模索しています。webdriver.ioのwhileループで約束をまとめる
ここに私のコードです。問題は、client.execute(...)への呼び出しです。それから、(...)はループの繰り返しの間にそれ自身を待たない。最後の「終わり」は前の「当時」を待っているわけではないので、それがコメントアウトされています。
...
var client = webdriverio.remote(options);
...
client
...
.then(function() {
var yTile = 0;
var heightCaptured = 0;
while(heightCaptured < documentSize.height) {
var tileFile = 'screenshot-' + yTile + '.png';
client
.execute(function(heightCaptured) {
window.scrollTo(0, heightCaptured);
}, heightCaptured)
.then(function() {
console.log('captured: ' + tileFile);
client.saveScreenshot('./' + tileFile);
return client;
});
heightCaptured += viewportSize.height;
yTile++;
}
})
//.client.end()
;
この場合、約束を使用する正しい方法は何ですか?
ありがとうございました。