web-dev-qa-db-fra.com

Comment augmenter le délai d'expiration dans CasperJS

J'utilise waitFor(). Le code comme ci-dessous:

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

Je reçois cela comme sortie de console

Wait timeout of 5000ms expired, exiting.

Comment puis-je augmenter le délai d'attente?

EDIT: j'ai changé le code en

 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);

Cela me donne l'erreur suivante:

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

Comme dit ici ,

La signature est

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

Il existe donc un argument supplémentaire pour spécifier le délai d'expiration.

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

Utilisez cela pour augmenter le délai d'expiration de chaque fonction wait (): casper.options.waitTimeout = 20000; (20sec)

58
Fanch

Si vous souhaitez augmenter le délai d'expiration tout en laissant le message d'erreur par défaut, passez null comme troisième argument et le nombre de millisecondes à attendre comme quatrième argument:

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