如何使用Protractor测试元素是否具有类?

93

我正在尝试使用Protractor进行端到端测试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
    });
});
11个回答

0

基本上,你需要解决几个问题:

  1. 如何获取 class。class 是一个 HTML 属性,因此可以通过这个命令来检索 (await 是现在推荐的方式)
let class = await element.getAttribute('class')

一旦您获得了类的值,您希望对其进行断言。
// for exact value
expect(class).toBe("active");

// for partial match
expect(class).toContain("active");
// or
expect(class.includes("active")).toBe(true);

// BUT, keep in mind
expect('male').toContain('male');
expect('female').toContain('male');
// BOTH pass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接