量角器中 hasClass 的 Jasmine 2 自定义匹配器

Jasmine 2 custom matcher for hasClass in Protactor

我将我的 Jasmine 1.3 升级到 2.0,所以我添加了一个自定义匹配器来检查 css 是 present.Below 是检查匹配器的代码

hasClass = function(actual,expected){
    return actual.getAttribute('class').then(function (classes) {
            return classes.split(' ').indexOf(expected) !== -1;
        });
}   

但是当我升级到 Jasmine 2 时,Protector 会像预期的那样抛出错误 return 但下面是异步过程

hasClass = function(){
     return compare: function(actual,expected){
        return actual.getAttribute('class').then(function (classes) {
                return {pass: classes.split(' ').indexOf(expected) !== -1};
            });
    }
}

如何测试元素中是否存在 class 我不想使用 jasmine-jquery?

pass 应该是一个承诺,而不是一次解决。尝试将其放入您的 beforeEach:

this.addMatchers({
    hasClass: function() {
        return {
            compare: function(actual, expected) {
                return {
                    pass: actual.getAttribute('class').then(function(classes) {
                        return classes.split(' ').indexOf(expected) !== -1;
                    })
                };
            }
        };
    }
});