Phantomjs Casperjs没有';不执行javascript代码
我有一个页面,我引用了一堆在页面标题中带有正则脚本标记的脚本:jQuery等,以及我编译的脚本index.js。后者很大,大约1.2米(不要问为什么) 我的index.html如下所示:Phantomjs Casperjs没有';不执行javascript代码,phantomjs,casperjs,slimerjs,Phantomjs,Casperjs,Slimerjs,我有一个页面,我引用了一堆在页面标题中带有正则脚本标记的脚本:jQuery等,以及我编译的脚本index.js。后者很大,大约1.2米(不要问为什么) 我的index.html如下所示: <html> <head> <title>Cool</title> <script src='jQuery.js'></script> <!-- more scripts --> <script src='index.js
<html>
<head>
<title>Cool</title>
<script src='jQuery.js'></script>
<!-- more scripts -->
<script src='index.js'></script>
<!-- more stuff -->
另一方面,jQuery在任何一种环境中都会初始化,我可以在evaluate上下文中运行jQuery代码,因此这将通过:
casper.test.begin('jQuery works', 1, function suite(test) {
casper.start(host);
casper.waitFor(
function () {
return casper.evaluate(function () {
try {
return !!$('html').length;
}
catch (e) {
return false;
}
});
},
function () {
test.pass('jQuery works');
},
function () {
test.fail('jQuery did not init');
});
casper.run(function () {
test.done();
});
});
如果我注销页面事件,我可以看到index.js加载的HTTP结果为200,它就不会被执行
以前有人经历过吗?PhantomJS或SlimeJS在脚本大小/复杂性方面是否有一些特定于平台的限制?您使用哪个PhantomJS和Slimer.js版本?请注册到
resource.error
,page.error
,remote.message
和casper.page.onResourceTimeout
事件()。也许有错误。是的,我经历过。没有任何错误消息。CasperJS的beta值为1.1,PhnatomJS的beta值为2.0,SlimerJS的beta值为0.9.6。不过我试过了casperjs@master但是没有人知道luck.PhantomJS 2.0.0会隐藏一些错误。你为什么不试试1.9.8呢?你是对的,这个错误被PhantomJS2.0隐藏了。我在1.9.2中得到了“Error:SyntaxError:Parse Error”。所以,在我编译的JS文件中应该有一些隐藏的ES6相关代码。这应该是OSX上测试用例失败的原因,因为它是。谢谢你,你帮了我很多!
casper.test.begin('jQuery works', 1, function suite(test) {
casper.start(host);
casper.waitFor(
function () {
return casper.evaluate(function () {
try {
return !!$('html').length;
}
catch (e) {
return false;
}
});
},
function () {
test.pass('jQuery works');
},
function () {
test.fail('jQuery did not init');
});
casper.run(function () {
test.done();
});
});