bsc*_*tty 3 unit-testing end-to-end protractor webpack angular
我正在为我的Angular组件编写一些量角器测试,当我尝试使用by.model选择输入元素时,不断收到错误"未知错误:未定义角度".
它奇怪,因为如果我这样做它工作正常和pases:
it('should have an input element for searching', () => {
var inputElement = element(by.model('searchText');
expect(inputElement).toBeDefined();
});
Run Code Online (Sandbox Code Playgroud)
但是当我尝试做这样的事情时,它会因角度未定义的错误而失败:
it('should filter the search text', () => {
var inputElement = element(by.model('searchText');
expect(inputElement).toBeDefined();
inputElement.clear()
inputElement.click();
inputElement.sendKeys('ICBC');
var tableLengthRow = element.all(by.css('.animate-repeat').count();
expect(tableLength).toBe(1);
});
Run Code Online (Sandbox Code Playgroud)
如果我替换这一行:
var inputElement = element(by.model('searchText');
Run Code Online (Sandbox Code Playgroud)
这一个:
var inputElement = element.all(by.tagName('input')).get(0);
Run Code Online (Sandbox Code Playgroud)
我把它留给测试通过.
有谁知道为什么上面的第一个测试使用by.model而不是第二个我实际点击该元素的测试?
然后我如何使用Webpack和npm在页面上定义角度?
谢谢
acd*_*ior 10
by.model Angular(angular2,angular4和on)不支持.
推荐的替代方案是by.css().
根据角度/量角器的当前自述:
量角器适用于大于1.0.6/1.1.4的AngularJS版本,并且与Angular应用程序兼容.请注意,对于Angular应用程序,不支持
by.binding()和by.model()定位器.我们建议使用by.css().
Angular Guide的备选示例- E2E测试:
Previous code New code Notes
by.model('$ctrl.query') by.css('input') The model matcher relies on AngularJS ng-model
by.model('$ctrl.orderProp') by.css('select') The model matcher relies on AngularJS ng-model
Run Code Online (Sandbox Code Playgroud)