Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确使用CasperJS中的casper.each_Javascript_Casperjs - Fatal编程技术网

Javascript 如何正确使用CasperJS中的casper.each

Javascript 如何正确使用CasperJS中的casper.each,javascript,casperjs,Javascript,Casperjs,我正在写一个小脚本来查询电子商务网站上的一些广告。我的代码是这样的 var keywords = ['fender', 'yamaha']; var casper = require('casper').create(), url = 'http://www.somecommercesite.com'; casper.start(url, function () { casper.each(keywords, function (self

我正在写一个小脚本来查询电子商务网站上的一些广告。我的代码是这样的

    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

所以,我得到了两次挡泥板条目,但从来没有得到yamahas。这些代码怎么了?

我找到了答案。我需要用casper.then()包围casper.fill()