我刚刚更新到量角器2.0,我在我的项目中发现了一些问题。量角器2.0不等待sendKeys()。承诺问题
expect()
失败,因为给定的文本是''
它似乎预计在sendKeys()
完成之前完成。
elem.clear().sendKeys('Message');
expect(elem.getAttribute('value')).toBe('Message');
我得到的错误是:
预计'是 '信息'。
即更新为量角器2.0工作之前,我知道之一beaking changes is related with then() and promises:
要使更新和删除混乱,这消除了 元件(),然后发挥功能,除非有。一个行动结果。这个 函数是完全不必要的,因为它总是会自动解析为 ,但是删除操作可能会导致重大更改。换句话说,一个 ElementFinder现在不再是一个承诺,直到一个动作被调用为 。
但在我的项目的其他测试中,它的工作原理,我认为这个问题可能与我正在做一个循环内期望有关。这里整个代码
describe('message', function() {
it('Should fill out visible message fields', function(){
getDisplayedElements(element.all(by.model('message')))
.then(function(displayedMessageInputs){
_.each(displayedMessageInputs, function(elem){
elem.clear().sendKeys('Message');
expect(elem.getAttribute('value')).toBe('Message');
});
});
});
});
如果我使用那么()函数它的作品,但是...我不喜欢它!
elem.clear().sendKeys('Message')
.then(function(){
return elem.getAttribute('value');
})
.then(function(inputValue){
expect(inputValue).toBe('Message');
});
你看到Chrome和Firefox之间的行为有什么不同吗? (它在Chrome中失败,但在Firefox中按预期工作?) – dlongley