Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理casperjs的特定assertEquals错误_Javascript_Casperjs - Fatal编程技术网

Javascript 如何处理casperjs的特定assertEquals错误

Javascript 如何处理casperjs的特定assertEquals错误,javascript,casperjs,Javascript,Casperjs,我想抓住一个资产质量错误并加以处理。例如: 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")

我想抓住一个资产质量错误并加以处理。例如:

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")
});
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")
});

示例由waitForSelector失败函数派生。示例由waitForSelector失败函数派生