Zee*_*Zee 2 javascript jquery phantomjs casperjs
经过一些调试后,看起来我在CasperJS中单击或触发此按钮的单击事件时遇到困难:
<a id="generate" class="btn" href="#generate"><strong>Generate</strong></a>
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码:
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中单击此按钮?
Fan*_*nch 16
而不是使用evaluate函数并在页面DOM环境中单击您的元素(使用jQuery),只需使用casper方法:this.click('#generate.btn');.这更容易.
还有clickLabel()函数.
| 归档时间: |
|
| 查看次数: |
24524 次 |
| 最近记录: |