为什么casper.on('点击' ...)没有触发?

时间:2015-10-03 20:42:58

标签: casperjs

以下是执行Google查询的最小casper脚本。我在运行脚本之前添加了casper.on('click' ...),但它似乎没有被触发。

我错过了什么?

// File: google_click_test.js
"use strict";

var casper = require('casper').create();

casper.on('click', function(css) {
    casper.echo('casper.on received click event ' + css);
});

// ================================================================
// agenda starts here

casper.start('https://google.com', function g01() {
    casper.echo('seeking main page');
});

casper.then(function a02() {
    casper.waitForSelector(
        'form[action="/search"]',
        function() { 
            casper.echo("found search form"); 
        },
        function() { 
            casper.echo("failed to find search form"); 
            casper.exit(); 
        });
});

casper.then(function a03() {
    casper.fillSelectors('form[action="/search"]', {
        'input[title="Google Search"]' : 'casperjs'
    }, false);
});

casper.then(function a04() {
    casper.click('form[action="/search"] input[name="btnG"]')
    casper.echo('clicked search button');
});

casper.run();

输出:

这是输出。我希望在某个地方看到casper.on received click event,但它似乎没有被触发:

$ casperjs --ignore-ssl-errors=true --web-security=no google_click_test.js
seeking main page
found search form
clicked search button
$ 

1 个答案:

答案 0 :(得分:0)

虽然您的示例使用casperjs 1.1.0-beta3和phantomjs 1.9.8对我来说运行良好,但我在过去几个月里一直在使用casperjs遇到类似的问题。可悲的是,作者似乎已停止维护该项目。更多信息:

https://github.com/n1k0/casperjs/issues/1299

我建议转到不同的测试框架。在我的情况下,我选择了mocha + chai + nightmarejs的组合。这个要点是一个很好的起点:

https://gist.github.com/MikaelSoderstrom/4842a97ec399aae1e024