如何调试PhantomJS脚本?

时间:2017-09-12 05:41:08

标签: phantomjs

我的脚本有一些语法错误但是没有显示错误,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]

enter image description here

1 个答案:

答案 0 :(得分:0)

如果存在语法错误,PhantomJS版本2.0和2.1将无提示失败并挂起。使用版本1.9.8或2.5 beta。所有下载均在此处:https://bitbucket.org/ariya/phantomjs/downloads/

最好还是迁移到Puppeteer,这是一个使用非常类似API的项目,下面使用无头谷歌浏览器。