我想知道是否有更简单的方法来检查输入字段是否有效使用量角器。我写了一个辅助函数,看起来像这样:
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
答案 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
作为参数。