2013-09-24 3 views
1

У меня есть простой пример для обработки событий CasperJS JQuery, который не работает событие, я никогда не видел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

<!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> 

eventtest.js

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(); 
+0

какая версия фантомных вы используете? – alonisser

+0

Версия Phantomjs: 1.9.1 – user2812866

ответ

0

Изменение оценки для thenEvaluate фиксированной проблема, по-видимому один должен убедитесь, что JQuery загружен до привязки события.

EX.

casper.thenEvaluate(function() { 
    $(document).on('pageRendered', function() { 
    window.__pageRendered_triggered__ = true; 
    }); 
}); 
+0

есть опечатка - должна быть тогдаEvaluate в коде – alonisser

+0

typo и ident теперь исправлены – fjsj

Смежные вопросы