我不明白如何在CasperJs上发现错误
我有这段代码
casper.thenClick('#activeCartViewForm > a');
它有时会回到我身边:
[error] [remote] mouseEvent(): Couldn't find any element matching '#activeCartViewForm > a' selector
我想抓住它并this.die(errorMsg)
来阻止我的casperjs。
我尝试添加waitForSelector
:
casper.waitForSelector('#activeCartViewForm > a', function() {
this.click('#activeCartViewForm > a');
});
但已经存在同样的问题了。
当我做的时候:
casper.on('step.error', function(err) {
this.die("Step has failed: " + err);
});
什么都没发生
当我做的时候:
casper.on('resource.error', function(err) {
console.log(err);
this.die("Step has failed: " + err.errorString);
});
它为我提供了前所未有的错误并停止了我的幻影:
[error] [phantom] Error: the remote server closed the connection prematurely
[error] [phantom] Error: The request has been aborted
[error] [phantom] Error: The request has been aborted
[error] [phantom] Error: the remote server closed the connection prematurely
由于
答案 0 :(得分:1)
您可以使用以下语句捕获CasperJS中的错误:
casper.on('error', function(msg, trace) {
// process an error
});
您可以尝试这个工作示例:
var casper = require('casper').create();
casper.on('error', function(msg) {
this.capture('error.png');
this.die(msg);
});
casper.start('http://casperjs.org/', function() {
});
casper.thenClick('#activeCartViewForm > a');
casper.run();