CasperJS jQuery事件处理不起作用
我有一个CasperJS JQuery事件处理的简单示例,它不起作用,我从来没有看到过CasperJS jQuery事件处理不起作用,jquery,events,casperjs,Jquery,Events,Casperjs,我有一个CasperJS JQuery事件处理的简单示例,它不起作用,我从来没有看到过 * page event received*********** 印刷品。相反,我看到了下面的日志 [error] [phantom] Wait timeout of 20000ms expired, exiting. Wait timeout of 20000ms expired, exiting. 我错过什么了吗 我正在使用CasperJS 1.0.2 eventtest.html <!doct
* page event received***********
印刷品。相反,我看到了下面的日志
[error] [phantom] Wait timeout of 20000ms expired, exiting.
Wait timeout of 20000ms expired, exiting.
我错过什么了吗
我正在使用CasperJS 1.0.2
eventtest.html
<!doctype html>
<html lang="en">
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<div>Event test for CasperJS</div>
<script>
setTimeout(function(){ $(document).trigger("pageRendered");}, 5000)
/*
$(document).on("pageRendered", function(){
//window.__pageRendered_triggered__ = true;
//alert("page loaded triggered");
console.log("page loaded triggered");
});*/
</script>
</body>
</html>
将evaluate更改为thenEvaluate修复了这个问题,显然,在绑定事件之前必须确保JQuery已加载 前
您正在使用哪个版本的phantomjs?phantomjs版本:1.9.1typo和ident现已修复
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
viewportSize: {
width: 1024, //970,
height: 768 // 3074
},
waitTimeout: 10000
});
casper.start('http://localhost/jqueryev.html', function() {});
casper.waitFor(function () {
return this.evaluate(function testForJQuery() {
return typeof(window.$) !== 'undefined';
});
}, function then() {
this.echo('* [event] jquery loaded');
});
casper.evaluate(function() {
// this fails...
$(document).on('pageRendered', function() {
window.__pageRendered_triggered__ = true;
});
});
casper.waitFor(function() {
return this.evaluate(function() {
return window.__pageRendered_triggered__ === true;
})===true;
}, function then() {
console.log("* page event received***********");
});
casper.run();
casper.thenEvaluate(function() {
$(document).on('pageRendered', function() {
window.__pageRendered_triggered__ = true;
});
});