2017-02-01 2 views
0

Ich verstehe nicht, wie auf CasperJs einen Fehler fangenCasperJs fangen Fehler

Ich habe diesen Code

casper.thenClick('#activeCartViewForm > a'); 

Und es mir zurück manchmal:

[error] [remote] mouseEvent(): Couldn't find any element matching '#activeCartViewForm > a' selector 

Ich möchte fangen es und this.die(errorMsg) meine Casperjs zu stoppen.

Ich versuche waitForSelector hinzuzufügen:

casper.waitForSelector('#activeCartViewForm > a', function() { 
    this.click('#activeCartViewForm > a'); 
}); 

Aber schon das gleiche Problem. Und

wenn ich es tat:

casper.on('step.error', function(err) { 
    this.die("Step has failed: " + err); 
}); 

Nichts geschieht

und wenn ich es tat:

casper.on('resource.error', function(err) { 
    console.log(err); 
    this.die("Step has failed: " + err.errorString); 
}); 

Es finanzieren mich nie ein Fehler sah vor und stoppen meine PhantomJS:

[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 

Danke

Antwort

1

Sie können einen Fehler in CasperJS mit der Aussage fangen:

casper.on('error', function(msg, trace) { 
    // process an error 
}); 

Sie können diese Arbeits Beispiel versuchen:

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