我正在编写一些针对我的 Angular 组件的 Protractor 测试,但当我尝试使用 by.model 选择输入元素时,会出现错误“未知错误:angular 未定义”。
这很奇怪,因为如果我这样做,它可以正常工作并通过测试:
it('should have an input element for searching', () => {
var inputElement = element(by.model('searchText');
expect(inputElement).toBeDefined();
});
但是,当我尝试做类似这样的事情时,它会因为 Angular 未定义错误而失败:
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);
});
如果我替换这行代码:
var inputElement = element(by.model('searchText');
使用这个:
var inputElement = element.all(by.tagName('input')).get(0);
只需将其余部分保留,测试即可通过。
有人知道为什么上面的第一个测试使用by.model可以工作,但我实际点击元素的第二个测试却不行吗?
然后我该如何使用Webpack和npm在页面上定义Angular?
谢谢