经过一些调试后,我似乎在 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/