我使用量角器用我的Angular.js应用测试e2e。我可以使用以下方法通过ng-model获取元素:
element(by.model('ctrl.someModel')).sendKeys('abc');
但是,它只适用于模型是" ng-model",而不使用严格的标记扩展器,如" data-ng-model"或" x-ng-model"。
有没有人知道使用HTML扩展程序的方法?
答案 0 :(得分:1)
data-ng-model
定位器<by.model
covered。 protractor
甚至有一个test:
it('should find inputs with alternate attribute forms', function() {
var letterList = element(by.id('letterlist'));
expect(letterList.getText()).toBe('');
element(by.model('check.w')).click();
expect(letterList.getText()).toBe('w');
element(by.model('check.x')).click();
expect(letterList.getText()).toBe('wx');
});
其中check.w
和check.x
模型are defined as:
<input ng:model="check.w" ng-true-value="'w'" type="checkbox"/> W
<input data-ng-model="check.x" ng-true-value="'x'" type="checkbox"/> X
仅供参考,by.model()
使用findByModel
"client-side" function为['ng-', 'ng_', 'data-ng-', 'x-ng-', 'ng\\:']
前缀构建一组CSS选择器:
[ng-model="modelname"]
[data-ng-model="modelname"]
...