CasperJs捕获错误

时间:2017-02-01 14:19:00

标签: node.js phantomjs casperjs

我不明白如何在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 

由于

1 个答案:

答案 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();