量角器检查元素是否有效

时间:2015-03-26 13:41:41

标签: angularjs protractor

我想知道是否有更简单的方法来检查输入字段是否有效使用量角器。我写了一个辅助函数,看起来像这样:

isValid(css:string) {
    var deferred = protractor.promise.defer();

    expect(element(by.css(css)).isPresent()).toBe(true);

    element(by.css(css)).getAttribute('class').then(function (attributes) {
        var matches:string[] = attributes.match('ng-invalid');

        deferred.fulfill(matches === null || matches.length === 0);
    });

    return deferred.promise;
}

这很有效,但似乎不是你使用量角器的方式。这似乎很复杂......

你们中的任何一个人都有更简单的方法吗?像

这样的东西
expect(element(by.css(css)).isValid()).toBeTruthy

1 个答案:

答案 0 :(得分:3)

如果您的角度代码具有表单验证逻辑并正确更新ng-valid / ng-invalid,那么您可以这样做

expect(hasClass(element(by.name('your-element')), 'ng-invalid')).toBe(true);
expect(hasClass(element(by.name('your-element')), 'ng-dirty')).toBe(true);

如果你想传递your-element作为参数。