这是按钮的代码。基本上单击按钮时,它会变为蓝色
<button id="testbutton" type="button" ng-class="selected('test')" ng-click="isMultiple('test')">test</button>
在浏览器中,它基本上来自
class = btn btn-block btn-lg ts-btn-default
要
class = btn btn-block btn-lg ts-btn-blue
我已经有了原始元素的var。如何让量角器检测到 ts-btn-blue ?我应该只使用不同的类创建另一个元素并执行
isdiplayed()
对于那个还是有更好的方法?
答案 0 :(得分:2)
点击后检查班级是否存在:
expect(yourElm.getAttribute('class')).toContain('ts-btn-blue');
如果您遇到时间问题,例如您的测试失败,因为expect()
在html实际到达DOM之前运行,您可能会发现我在下面实际使用的内容很有用。
expect(yourElm).toHaveClass('ts-btn-blue');
Here一个Jasmine 1.3.x自定义toHaveClass
匹配器,支持否定.not
加上等待最多5秒(或您指定的任何内容)。
Find the full custom matcher to be added on your onPrepare block in this gist
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');
});
更新
这只适用于ElementFinders。一旦this jasminewd PR #9合并,就可以在WebElements上工作。