0

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回取得しましたが、ヤマハは取得しませんでした. それらのコードの何が問題になっていますか?

4

1 に答える 1