web-dev-qa-db-ja.com

CasperJSでタイムアウトを増やす方法

私はwaitFor()を使用しています。以下のコード:

casper.waitFor(function check() {
    return this.evaluate(function() {
        return this.evaluate(someFunction, 'variable 1','variable 2','variable 3') === 'yes';
    });
}, function then() {
    console.log('Done');
});

これをコンソール出力として取得しています

Wait timeout of 5000ms expired, exiting.

タイムアウトを増やすにはどうすればよいですか?

編集:コードを次のように変更しました

 casper.waitFor(function check() {
        return this.evaluate(function() {
            return this.evaluate(someFunction, 'variable 1','variable 2','variable 3') === 'yes';
        });
    }, function then() {
        console.log('Done');
    },10000);

次のエラーが表示されます。

CasperError: Invalid timeout function, exiting.
    C:/filename:1720 in _check
31
user2129794

前述のとおり、 ここ

署名は

waitFor(Function testFx[, Function then, Function onTimeout, Number timeout])

そのため、タイムアウトを指定する追加の引数があります。

casper.waitFor(function check() {
    //...
    });
}, function then() {
     //...
}, function timeout() { 
//...
}, TIMEOUT_IN_MS);
27
Cybermaxs

それを使用して、すべてのwait()関数のタイムアウトを増やします:casper.options.waitTimeout = 20000;(20秒)

58
Fanch

デフォルトのエラーメッセージを残したままタイムアウトを増やしたい場合は、3番目の引数としてnullを渡し、4番目の引数として待機するミリ秒数を渡します。

casper.waitFor(function check() {
    return this.evaluate(function() {
        return this.evaluate(someFunction, 'variable 1','variable 2','variable 3') === 'yes';
    });
}, function then() {
    console.log('Done');
}, null, 10000);
1
warvariuc