我有两个按钮。如果一个按钮具有禁用等级而不是其他按钮。现在我想检查一下,如果第一个按钮的类禁用,我需要点击第二个按钮,反之亦然。
我正在尝试下面的代码,但它每次都返回true。根据条件动态添加禁用类。
if (expect(element(by.css('ul#menu [data-selector="holdInventory"]'))
.getAttribute('class')).toEqual('disabled')) {
console.log('has class');
} else {
console.log('has not class');
}
任何帮助都会受到赞赏。
答案 0 :(得分:6)
在量角器中,一切都是承诺。因此,为了执行操作,您需要先解决它,然后验证类值。此外,您不能使用相等,因为元素可以与多个类关联,因此您需要使用包含。
var btn1 = element(by.css('ul#menu [data-selector="holdInventory"]'));
btn1.getAttribute('class')).then(function(cls) {
if(cls.includes('disabled')) {
btn1.click();
} else {
btn2.click();
}
});
答案 1 :(得分:0)
您可以通过查询以下内容来检查元素的长度1
,
let elements = fixture.debugElement.queryAll(By.css('ul#menu [data-selector="holdInventory"]');
expect(elements.length).toEqual(1); //////////////
答案 2 :(得分:0)
您可以使用ng-class动态添加禁用类,具有某些条件,例如
<button ng-class="{'disable' : switchDisable == '1'}"> Disable </button>
<button ng-class="{'disable' : switchDisable == '0'}"> Not Disable</button>
此处switchDisable
是一个范围值,您可以在点击$scope.switchDisable = 1
按钮时切换,也可以根据需要使用任何其他表达式。
参考:https://docs.angularjs.org/api/ng/directive/ngClass