CasperJS不能正确触发动态脚本/链接调用的回调
CasperJS does not trigger properly on callback of dynamic script/link call
我有一个问题与Casper JS和一个示例html页面。
我动态添加的外部引导调用上的onLoad事件不会在casper端触发/处理。在我的例子中,屏幕截图永远不会是红色的,但如果我从浏览器加载页面,那么页面看起来确实是红色的。
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<script type="text/javascript">
var s = document.createElement("link");
s.href = "http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css";
s.rel = "stylesheet";
s.type = "text/css";
document.body.appendChild(s);
s.onload = function(){
document.body.style.backgroundColor = "red";
};
</script>
</body>
</html>
下面是casper调用的文件:
var casper = require('casper').create();
casper.start('test.html', function() {
});
casper.wait(5000, function(){
casper.capture("debug.png");
});
casper.run(function() {
});
我错过了什么吗?
PhantomJS (v1.9.7), CasperJS的底层无头浏览器,具有与Chrome 13相同的功能,似乎不支持onload
上的link
元素。如果你需要它,你可以在这里找到一些解决方法。
否则,下面的代码可以满足您的要求:
casper.start('test.html');
casper.waitForResource(/css/, function(){
this.evaluate(function(){
document.body.style.backgroundColor = "red";
});
this.capture("debug.png");
});
你可以使用--enginge=slimerjs
和http://slimerjs.org/从你安装的firefox运行gecko引擎。
在一个无关的笔记上。link
元素更适合head
而不是body
。
相关文章:
- 正在创建网页,并希望将外部链接调用为html和css
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- Backbone.js的新手,如何从html按钮和链接调用函数
- 如何正确地链接调用$.show()和$.thoggClass()来触发CSS3动画
- Angularjs指令链接调用ng-click中的函数
- JQuery从超链接调用函数
- 为所有哈希链接/调用的滚动位置添加自动偏移量
- 从链接调用 js 方法
- 从文本链接调用谷歌自定义搜索叠加层
- 如何为特定的链接调用javascript
- 从gridview超链接调用具有多个参数的Javascript函数
- 从外部链接调用JavaScript
- 从超链接调用Javascript函数
- Sitecore 8 Speak UI-从HTMLTemplate链接调用页面代码Javascript
- 如何使网页上的所有链接调用javascript函数
- 如何从链接调用facebookjavascript
- JS悬停链接调用函数,但只有一次
- CasperJS不能正确触发动态脚本/链接调用的回调
- 如何通过ajax响应链接调用相同的函数
- 从同一IP地址点击第三个链接调用JS函数