Selenium webdriver 量角器/Web驱动程序:检测类何时添加到元素

Selenium webdriver 量角器/Web驱动程序:检测类何时添加到元素,selenium-webdriver,protractor,Selenium Webdriver,Protractor,这是按钮的代码。基本上,当点击按钮时,它会变成蓝色 <button id="testbutton" type="button" ng-class="selected('test')" ng-click="isMultiple('test')">test</button> 到 我已经有了原始元素的var。如何让量角器检测放入的ts btn blue?我是否应该用不同的类创建另一个元素并进行 isdiplayed() 是否有更好的方法?单击后检查是否有课程: expect

这是按钮的代码。基本上,当点击按钮时,它会变成蓝色

 <button id="testbutton" type="button" ng-class="selected('test')" ng-click="isMultiple('test')">test</button>

我已经有了原始元素的var。如何让量角器检测放入的ts btn blue?我是否应该用不同的类创建另一个元素并进行

isdiplayed()


是否有更好的方法?

单击后检查是否有课程:

expect(yourElm.getAttribute('class')).toContain('ts-btn-blue');
如果您遇到计时问题,例如测试失败,因为
expect()
在html实际到达DOM之前运行,您可能会发现下面我实际使用的内容很有用

expect(yourElm).toHaveClass('ts-btn-blue');
Jasmine 1.3.x自定义
toHaveClass
匹配器,带否定
。不支持
并等待5秒(或您指定的任何时间)

示例用法: 更新

这只适用于ElementFinder。一旦合并,将在WebElements上工作

expect(yourElm.getAttribute('class')).toContain('ts-btn-blue');
expect(yourElm).toHaveClass('ts-btn-blue');
it('test the class finder custom matcher', function() {
    // These guys should pass OK given your user input
    // element starts with an ng-invalid class:
    expect($('#user_name')).toHaveClass('ng-invalid');
    expect($('#user_name')).not.toHaveClass('ZZZ');
    expect($('#user_name')).toNotHaveClass('ZZZ');
    expect($('#user_name')).not.toNotHaveClass('ng-invalid');
    // These guys should each fail:
    expect($('#user_name')).toHaveClass('ZZZ');
    expect($('#user_name')).not.toHaveClass('ng-invalid');
    expect($('#user_name')).toNotHaveClass('ng-invalid');
    expect($('#user_name')).not.toNotHaveClass('ZZZ');
});