Ich möchte einen Screenshot einer vollständigen Webseite erstellen, indem Sie Kacheln der Ansichtsfenstergröße erfassen. Es ist fast fertig, aber ich bin sehr neu in Versprechungen und ich suche nach dem richtigen Weg.Verkettung verspricht in einer while-Schleife in webdriver.io
Hier ist mein Code. Das Problem ist der Aufruf von client.execute (...). Dann wartet (...) nicht auf sich selbst zwischen Schleifeniterationen. Und das letzte "Ende" wartet nicht auf das vorherige "dann", deshalb ist es auskommentiert.
...
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()
;
Was ist der richtige Weg, Versprechen in diesem Fall zu verwenden?
Danke.