我有一个函数可以在表单中输入一些值。这应该返回一个promise,所以我的测试会等到函数完成并在表单中输入值。我如何在量角器测试中做到这一点?
function enterSomeValuesIntoForm() {
// do some stuff
element(by.id('value1')).sendKeys('hello');
element(by.id('value2')).sendKeys('is it me you looking for?');
element(by.id('submitButton')).click();
});
答案 0 :(得分:1)
据我所知,你实际上并不需要从这个函数返回一个promise。函数调用期间执行的所有操作都将由Control Flow:
控制和排队WebDriverJS(以及Protractor)API完全是异步的。所有 函数返回承诺。
WebDriverJS维护一个待处理的承诺队列,称为控件 流程,以保持执行有序。
您仍然可以返回click()
返回的承诺:
function enterSomeValuesIntoForm() {
// do some stuff
element(by.id('value1')).sendKeys('hello');
element(by.id('value2')).sendKeys('is it me you looking for?');
return element(by.id('submitButton')).click();
});
以便您以后可以明确解决:
enterSomeValuesIntoForm().then(function () {
// form is submitted at this point
});