量角器'toContain'错误

时间:2016-09-20 08:50:54

标签: protractor

这是我的期望:

expect(mandatoryFields[index].getAttribute('class')).toContain('error');

这是控制台中的错误:

预期['formControl ng-pristine ng-untouched ng-valid ng-empty ng-valid-maxlength error']包含'错误'。

虽然该类包含ERROR类名,但量角器仍然会抛出错误。可能是什么原因?任何帮助!!!

2 个答案:

答案 0 :(得分:1)

而不是toContain尝试使用toMatch。 toContain用于检查数组中是否存在所需的值。而toMatch使用正则表达式来验证任何值中的文本。

答案 1 :(得分:0)

您可以尝试在beforeEach()中添加自定义匹配器,然后调用expect(mandatoryFields[index]).toHaveClass('error');

jasmine.addMatchers([
toHaveClass: function () {
        return {
            compare: function (element, className) {
                return {
                    pass: element.getAttribute('class').then(function (classes) {
                        return classes.split(' ').indexOf(className) !== -1||classes.split(' ').indexOf(className+"\n") !== -1;
                    }),
                    message: "Expected elemenet to have class: "+className
                }
            },
            negativeCompare: function(element, className){
                return {
                    pass: element.getAttribute('class').then(function (classes) {
                        return classes.split(' ').indexOf(className) !== -1||classes.split(' ').indexOf(className+"\n") === -1;
                    }),
                    message: "Expected element not to have class: " + className
                }
            }
        }
    }
]);