e コマース Web サイトでいくつかの広告を照会するための小さなスクリプトを作成しています。私のコードはこのようなものです
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
それで、フェンダーのエントリーを2回取得しましたが、ヤマハは取得しませんでした. それらのコードの何が問題になっていますか?