Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 量角器检查元素是否有效_Angularjs_Protractor - Fatal编程技术网

Angularjs 量角器检查元素是否有效

Angularjs 量角器检查元素是否有效,angularjs,protractor,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

我想知道是否有一种更简单的方法可以使用量角器检查输入字段是否有效。我编写了一个助手函数,如下所示:

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

如果您的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);

如果您想将
元素作为参数传递。

只需
expect(hasClass(element(by.name('your-element')),'ng invalid')).toBe(true)有什么问题?也可以检查一下ng dirty。哦,等等。。。还有一件事。。。我使用Typescript编写测试,它似乎不知道在哪里可以找到hasClass。。。你知道那是哪个图书馆吗?它既不在量角器Api doku中,也不在Jasmine中…@waXve您可以在这里阅读关于hasClass方法的内容: