2013-08-13 14 views
29

Używam waitFor(). Kod jak poniżej:Jak zwiększyć limit czasu w 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'); 
}); 

Dostaję to jako wyjście konsoli

Wait timeout of 5000ms expired, exiting. 

Jak mogę zwiększyć limit czasu?

EDIT: Zmieniłem kod do

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

To daje mi następujący błąd:

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

Odpowiedz

27

Jak powiedział here,

Podpis jest

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

Istnieje więc dodatkowy argument określający limit czasu.

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

Możesz również ustawić opcję zwiększenia limitu czasu. Będzie to ustawienie domyślne dla wszystkich funkcji czasowych. Zobacz następujący link: [link] (http://docs.casperjs.org/en/latest/modules/casper.html#timeout) – Ryguy

+0

Zobacz Edycja. Zaktualizowałem kod, ale dostaję błąd, jak pokazano w edycji – user2129794

+1

tak, tak naprawdę trzeci argument dotyczy wywołania zwrotnego Timeout. Wartość limitu czasu jest czwarta. – Cybermaxs

53

używać, aby zwiększyć limit czasu każdego wait() funkcje: casper.options.waitTimeout = 20000; (20sek)

+0

ta wartość będzie używana dla polecenia waitFor(), a także wait() wszystko w commons @ Fanch? – gumuruh

+1

@ gumuruh: tak;) http://docs.casperjs.org/en/latest/modules/casper.html#waittimeout 'Domyślny limit czasu oczekiwania, dla funkcji oczekiwania * rodziny. – Fanch

1

Jeśli chcesz zwiększyć limit czasu, pozostawiając domyślny komunikat o błędzie, należy przekazać null jako trzeci argument i liczby milisekund oczekiwania na czwarty 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);