2016-10-11 2 views
1

私はassertEqualsErrorをキャッチしてそれを処理したいと思います。例:casperjsの特定のassertEquals-Errorを処理する方法

var innerHTML = casper.getElementInfo(x('id("grid")/a[2]')).html; 
test.assertEquals(innerHTML, "GridContent", 
function success(){ 
},function fail(){ 
    captureSelector('screenshots/error%D%.png'.replace('%D%',25), x(id("grid"))); 
}); 

この例は機能しません。 casperコードが生成され、fail関数は一致しない要素の親要素のスクリーンショットを生成する必要があります。

スクリーンショットは増分された数字でなければならず、可能であればテストの行を含むエラーを投げるべきです。

+0

例は、waitForSelector fail関数 –

答えて

0

Tester#assertEqualsは非同期ではないため、成功または失敗のコールバックがありません。これは、その情報を取得する少しトリッキーですが、あなたはあなたのためのことを行い、イベントハンドラを登録することができます。

casper.on("fail", function(ev){ 
    if (ev.type === "assertEquals") { 
     captureSelector('screenshots/error%D%.png'.replace('%D%',25), x(id("grid"))); 
    } 
}); 

これはあなたには、いくつかのドキュメント化されていないCasperJS機能を使用せずに削除することはできませんグローバルイベントハンドラであることに留意してください。しかし、これをより再利用したい場合は、次のようにすることができます。

var failFunc = null; 
casper.on("fail", function(ev){ 
    if (typeof failFunc === "function" && ev.type === "assertEquals") { 
     failFunc(); 
     failFunc = null; 
    } 
}); 

... 

casper.then(function(){ 
    failFunc = function(){ 
     captureSelector('screenshots/error%D%.png'.replace('%D%',25), x(id("grid"))); 
    }; 

    test.assertEquals(innerHTML, "GridContent") 
}); 
関連する問題