各反復の間に 3 回 2 秒のループを作成する必要があります。私はこれらの3つのオプションを試しました:
オプション1
var casper = require('casper').create({
    verbose: false,
    logLevel: 'debug'
});
casper.start("http://google.com");
casper.on('remote.message', function(msg) {
    this.echo('remote message caught: ' + msg);
})
casper.thenEvaluate(function() {
    var x = 0;
    var intervalID = setInterval(function () {
       console.log("Using setInternal " + x);
       if (++x === 3) {
           window.clearInterval(intervalID);
       }
    }, 2000);
});
casper.run();
観察setInterval: 最初のスクリプトが呼び出される前にスクリプトが終了したため、何も表示されませんでした。
オプション 2
以下thenEvaluate()に差し替えthen()
for (i=0; i<3; i++) {
    this.wait(2000);
    this.echo('Using this.wait ' + i);
}
観察: すぐに 3 回出力し、this.wait()非同期であるため長時間待機します。間に遅延が必要なので、これは私が望んでいるものではありません。
オプション 3以下
の部品をこれに置き換えthen()ます。waitFunc()呼び出されるたびに再帰呼び出しを行うことを考えていましたwait()。
var count = 0;
var waitFunc = function() {
    this.wait(2000, function() {
        if (count < 3) {
            casper.echo('Using this.wait ' + count);
            count++;
            waitFunc();
        }
    });
};
観察: 画面に何も出力されません。
だから私の質問は: this.wait または setInterval をこの場合のように 3 回のループで動作させるにはどうすればよいですか?