如何处理 casperjs 的特定 assertEquals-Error
How to handle a specific assertEquals-Error for casperjs
我想捕获一个 assertEqualsError 并处理它。例如:
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函数应该生成不匹配元素的父元素的截图。
屏幕截图必须带有递增的数字,并且应该(如果可能)抛出包含测试行的错误。
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")
});
我想捕获一个 assertEqualsError 并处理它。例如:
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函数应该生成不匹配元素的父元素的截图。
屏幕截图必须带有递增的数字,并且应该(如果可能)抛出包含测试行的错误。
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")
});