2013-08-13 6 views
29

Ich verwende waitFor(). Der Code wie folgt:So erhöhen Sie das Timeout in CasperJS

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

Am bekommen dies als Konsolenausgabe

Wait timeout of 5000ms expired, exiting. 

Wie kann ich das Timeout erhöhen?

EDIT: Ich habe den Code zu

geändert
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); 

Es gibt mir die folgende Fehlermeldung:

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

Antwort

27

Wie gesagt here,

Die Signatur ist

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

Es gibt also ein zusätzliches Argument, um das Zeitlimit anzugeben.

casper.waitFor(function check() { 
    //... 
    }); 
}, function then() { 
    //... 
}, function timeout() { 
//... 
}, TIMEOUT_IN_MS); 
+5

Sie können auch eine Option zum Erhöhen der Zeitüberschreitung festlegen. Dies ist die Standardeinstellung für alle zeitgesteuerten Funktionen. Siehe folgenden Link: [link] (http://docs.casperjs.org/en/latest/modules/casper.html#timeout) – Ryguy

+0

Siehe Bearbeiten. Ich habe den Code aktualisiert, aber bekomme den Fehler, wie in der Bearbeitung gezeigt – user2129794

+1

ja, in der Tat ist das dritte Argument OnTimeout Callback. Timeout-Wert ist der vierte. – Cybermaxs

53

verwenden, das das Timeout jeden wait() Funktionen zu erhöhen: casper.options.waitTimeout = 20000; (20sec)

+0

Dieser Wert wird für den Befehl waitFor() und auch wait() alle in commons @Fanch verwendet? – gumuruh

+1

@gumuruh: yes;) http://docs.casperjs.org/en/latest/modules/casper.html#waittimeout 'Default Wartezeit Timeout, für Warte * Familienfunktionen.' – Fanch

1

Wenn Sie Timeout zu erhöhen, während der Standard-Fehlermeldung zu verlassen, null als drittes Argument übergeben und die Anzahl der Millisekunden bis zum vierten Argument warten:

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