Angularjs 如何在量角器中编写检查css类的预期条件?
我有一个id为'public1'的按钮。当我单击该元素时,类状态从ng pristine变为ng dirty:Angularjs 如何在量角器中编写检查css类的预期条件?,angularjs,selenium-webdriver,protractor,Angularjs,Selenium Webdriver,Protractor,我有一个id为'public1'的按钮。当我单击该元素时,类状态从ng pristine变为ng dirty: <input id="public1" class="tile-checkbox ng-valid ng-dirty> Some Text</input> 我会使用: 类似于以下内容(使用ES6 function.includes()),如果您不想向jasmine添加其他匹配器: let input = $('#public1'); expect(input.
<input id="public1" class="tile-checkbox ng-valid ng-dirty> Some Text</input>
我会使用:
类似于以下内容(使用ES6 function.includes()),如果您不想向jasmine添加其他匹配器:
let input = $('#public1');
expect(input.getAttribute('class').then(classes => classes.includes('ng-pristine') && !classes.includes('ng-dirty')).toBeTruthy('Should have "ng-pristine" class ');
input.click();
expect(input.getAttribute('class').then(classes => !classes.includes('ng-pristine') && classes.includes('ng-dirty')).toBeTruthy('Should have "ng-dirty" class after click');
接下来,如果我想通过文本(没有类或属性)找到一个元素,我该怎么做?@KunalOjha在这种情况下,您可以使用xpath:元素(by.xpath(//input[normalize space(..='Some text'])
。我得到一个错误,提示“toHaveClass()不是函数”@KunalOjha,它不是内置的匹配器。您必须定义它-请参见答案中的链接线程。谢谢
let input = $('#public1');
expect(input.getAttribute('class').then(classes => classes.includes('ng-pristine') && !classes.includes('ng-dirty')).toBeTruthy('Should have "ng-pristine" class ');
input.click();
expect(input.getAttribute('class').then(classes => !classes.includes('ng-pristine') && classes.includes('ng-dirty')).toBeTruthy('Should have "ng-dirty" class after click');