我的脚本有一些语法错误但是没有显示错误,PhantomJS没有显示任何内容。如果脚本有错误,为什么Phantom JS没有显示解析错误?
在下面的PhantomJS脚本(通过Windows CMD运行)中,如果脚本中存在解析错误,则phantomJ会挂起而不是显示错误。
ListView.ItemSource=source
var system = require('system');
var webpage = require('webpage').create();
console.log('starting script');
if (system.args.length === 0) {
console.log('no args');
} else {
system.args.forEach(function(arg,index){
console.log('arg is '+arg+' at '+index);
});
}
webpage.open('http://localhost:3000/cookie-demo',function(status){
if (status === 'success'){
console.log('success in opening page');
phantom.cookies.forEach(function(cookie,index){
for ( var key in cookie){
/*if instead of index, I use i as variable (undefined), the script just hangs!*/
});
如果脚本中没有语法错误,我会得到以下输出
console.log('[cookie:'+index+']'+key+'='+'cookie[key]');
}
});
phantom.exit(0);
}
else{
console.log('could not open the page');
phantom.exit(1);
}
但如果出现语法错误,我在控制台上看不到任何内容并且它不会退出
C:\Users\Manu\Documents\manu\programs\random>phantomjs --cookies-file=cookie-jar.txt phantomTest.js
starting script
arg is phantomTest.js at 0
success in opening page
[cookie:0]domain=cookie[key]
[cookie:0]expires=cookie[key]
[cookie:0]expiry=cookie[key]
[cookie:0]httponly=cookie[key]
[cookie:0]name=cookie[key]
[cookie:0]path=cookie[key]
[cookie:0]secure=cookie[key]
[cookie:0]value=cookie[key]
[cookie:1]domain=cookie[key]
[cookie:1]expires=cookie[key]
[cookie:1]expiry=cookie[key]
[cookie:1]httponly=cookie[key]
[cookie:1]name=cookie[key]
[cookie:1]path=cookie[key]
[cookie:1]secure=cookie[key]
[cookie:1]value=cookie[key]
答案 0 :(得分:0)
如果存在语法错误,PhantomJS版本2.0和2.1将无提示失败并挂起。使用版本1.9.8或2.5 beta。所有下载均在此处:https://bitbucket.org/ariya/phantomjs/downloads/
最好还是迁移到Puppeteer,这是一个使用非常类似API的项目,下面使用无头谷歌浏览器。