Casperjs有一些奇怪的行为。当我执行我的代码时,最后的then
步骤并不总是被调用。我真的不知道为什么。
代码
var casper = require('casper').create({
verbose: true,
logLevel: 'debug'
});
login = 'user';
password = 'password';
baseURL = 'http://fr.bazarchic.com';
function getHomepageLinks() {
console.log('hello');
return Array.prototype.map.call(document.querySelectorAll('.label_big a'), function(e) {
return e.getAttribute('href');
});
}
casper.start(baseURL, function(){
this.fill('form[action="/login/"]', {
'email' : login,
'pass' : password
}, true)
});
casper.then(function() {
ventesLinks = this.evaluate(getHomepageLinks);
});
casper.then(function() {
this.echo(ventesLinks);
this.eachThen(ventesLinks, function(response){
this.echo(response.data);
})
})
casper.run(function() {
});
由于
答案 0 :(得分:0)
如果你真的需要拆分这两个步骤,那么你应该使用waitFor而不是then()作为最后一个步骤:
casper.waitFor(function check() {
return ventesLinks.length > 0;
}, function then() {
this.echo(ventesLinks);
this.eachThen(ventesLinks, function(response){
this.echo(response.data);
});
});