Я пытаюсь вернуть значение из обещания WebDriver в решении Protractor с использованием TypeScript, но в качестве ответа получаю undefined
.Return Promise Value from Page Object using TypeScript
get nameInput(): string {
var value: string;
this.nameElement.getAttribute('value').then(v => value = v);
return value;
}
В приведенном выше случае, кажется, что функция не ждет обещание вернуться, поэтому я попытался отходя от стиля геттерного и объявлен тип возвращаемого обещание WebDriver в:
getNameInput(): webdriver.promise.Promise<string> {
var nameElement = element(by.id('name'));
return nameElement.getText().then(v => { return v });
}
Но я получаю Function
в качестве возврата вместо значения v
. Похоже, что обещание не разворачивается Жасмин expect
, как это происходит при запуске его в JS.
Я знаю, что могу выполнить обещание непосредственно в ожидании, но в идеале я бы создал всю логику функции вне любых ожиданий, так что я смогу потом оживить вызов функции любыми (если есть) параметрами - вместо того, чтобы загрязнять тестовый пример логикой обещания.
Любые идеи?