以下是执行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
$
答案 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