如何使用量角器测试元素是否具有类?

发布于 2021-02-01 10:02:02

我正在尝试量角器以e2e测试Angular应用程序,但还没有弄清楚如何检测元素是否具有特定的类。

就我而言,测试单击了提交按钮,现在我想知道form [name =“ getoffer”]是否具有类.ngDirty。有什么解决方案?

describe('Contact form', function() {
    beforeEach(function(){
        browser.get('http://localhost:9000');
        element(by.linkText('Contact me')).click();
    });

    it('should fail form validation, all fields pristine', function() {
        element(by.css('.form[name="getoffer"] input[type="submit"]')).click();
        expect(element(by.name('getoffer'))).toHaveClass('ngDirty'); // <-- This line
    });
});
关注者
0
被浏览
80
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    您必须注意的是,使用时要注意的一个问题toMatch()是部分匹配。例如,假设您有一个可能具有类correct和的元素incorrect,并且您想测试它是否具有类correct。如果要使用expect(element.getAttribute('class')).toMatch('correct'),即使元素具有incorrect类,也将返回true

    我的建议:

    如果您只想接受完全匹配,则可以为其创建一个辅助方法:

    var hasClass = function (element, cls) {
        return element.getAttribute('class').then(function (classes) {
            return classes.split(' ').indexOf(cls) !== -1;
        });
    };
    

    您可以这样使用它(利用expect自动在量角器中兑现承诺的事实):

    expect(hasClass(element(by.name('getoffer')), 'ngDirty')).toBe(true);
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看