【问题标题】:protractor check if element is valid量角器检查元素是否有效
【发布时间】:2015-05-30 13:26:58
【问题描述】:

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

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

【问题讨论】:

  • expect(hasClass(element(by.name('your-element')), 'ng-invalid')).toBe(true); 有什么问题?也许也检查ng-dirty

标签: angularjs protractor


【解决方案1】:

如果您的 Angular 代码具有表单验证逻辑并正确更新 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 作为参数传递。

【讨论】:

  • 哦,等等……还有一件事……我使用 Typescript 编写测试,似乎它不知道在哪里可以找到 hasClass……你知道那是哪个库?它不在 Protractor Api doku 中,也不在 Jasmine 中...
  • @waXve 您可以在此处阅读有关 hasClass 方法的信息:stackoverflow.com/questions/5085567/…
猜你喜欢
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 2011-04-16
  • 2014-08-09
  • 1970-01-01
相关资源
最近更新 更多