0
我正在寫一個小腳本來查詢電子商務網站上的一些廣告。我的代碼是這樣的如何正確使用CasperJS中的casper.each
var keywords = ['fender', 'yamaha'];
var casper = require('casper').create(),
url = 'http://www.somecommercesite.com';
casper.start(url, function() {
casper.each(keywords, function (self, word) {
casper.echo("Getting entries for keyword " + word + "..");
casper.fill('form#frmsearch', {
'q': word
}, true);
casper.then(function() {
casper.echo("KEYWORD SHOULD BE: " + word);
var actualKeyword = casper.evaluate(function() {
return "ACTUAL KEYWORD: " + document.getElementsByTagName('strong')[0].innerText;
});
casper.echo(actualKeyword);
var result = casper.evaluate(function() {
var entry = document.getElementsByClassName("listing")[0];
return entry.innerText;
});
casper.echo(result);
});
});
});
casper.run();
但是,我得到了不正確的結果。輸出是
Getting entries for keyword fender..
Getting entries for keyword yamaha..
KEYWORD SHOULD BE: fender
ACTUAL KEYWORD: fender
// entries for fender
KEYWORD SHOULD BE: yamaha
ACTUAL KEYWORD: fender
// entries for fender
所以,我得到了擋泥板條目兩次,從來沒有雅馬哈。這些代碼有什麼問題?