javascript - 如何在 CasperJS 中单击此按钮?

标签 javascript jquery phantomjs casperjs

经过一些调试后,我似乎在 CasperJS 中单击或触发此按钮的单击事件时遇到困难:

<a id="generate" class="btn" href="#generate"><strong>Generate</strong></a>

这是我到目前为止的代码:

var casper = require('casper').create({
    clientScripts: [
        '...\\JQuery\\jquery-1.11.1.min.js'
    ],
    pageSettings: {
        userAgent: 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0'
    }
});
casper.on('page.initialized', function (page) {
    page.evaluate(function () {
        (function() {
            window.screen = {
                width: 1600,
                height: 900
            };
            var fake_nav = {};
            for (var i in navigator) {
                fake_nav[i] = navigator[i];
            }
            fake_nav.javaEnabled = function() { return true; };
            fake_nav.language = 'en-US';
            window.navigator = fake_nav;
        })();
    });
});
casper.start('http://www.json-generator.com/', function() {
    this.echo("Loaded successfully.");
});
var template = '[\'{{repeat(1,3)}}\',    {asdf: "hello"}    ]';
casper.then(function() {
    this.evaluate(function(input) {
        window.$('.CodeMirror')[0].CodeMirror.setValue(input);
     }, template);
});
casper.then(function() {
    this.evaluate(function() {
        document.$('#generate').click();
    });
});
casper.then(function() {
    var doc = this.evaluate(function($) {
        return window.$('.CodeMirror')[1].CodeMirror.getValue();
    });
    this.echo(doc);
});
casper.run(function() {
    this.echo('All Done.');
    this.exit();
});

这会生成输出(请注意“casper.echo(doc)”中的空行):

Loaded successfully.

All Done.

我已经确认我的 JavaScript 可以在 Chrome 和 Firefox 的浏览器控制台中运行。为什么我无法在 CasperJS 中单击此按钮?

最佳答案

无需使用评估函数并单击页面 DOM 环境中的元素(使用 jQuery),只需使用 casper 方法:this.click('#generate.btn');。更容易。

还有clickLabel()功能。

关于javascript - 如何在 CasperJS 中单击此按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635585/

相关文章:

javascript - 尝试使用 AJAX 发布 JSON 并接收 400

jquery - 使用 jquery inarray() 搜索字符串变量返回 -1

javascript - 如何在 JSON 中查找键的值

phantomjs 生成的 pdf 中的 Highcharts 列高度

javascript - karma 和 phantomJS 有什么区别

javascript - 正则表达式以匹配文本区域中用空格填充的行条目

javascript - 通过悬停隐藏/取消隐藏 HTML 部分?

javascript - 打字机追加淡入

javascript - casperjs无限循环超时不等待

Javascript 从最近的 TR 访问 TD。 JavaScript PHP session