angularjs - Return Promise Value from Page Object using TypeScript -
i'm trying return value webdriver promise within protractor solution using typescript, i'm getting undefined response.
get nameinput(): string {     var value: string;     this.nameelement.getattribute('value').then(v => value = v);     return value; }   in above case seems function not waiting promise return, therefore tried moving away getter style , declared return type webdriver's promise:
getnameinput(): webdriver.promise.promise<string> {      var nameelement = element(by.id('name'));     return nameelement.gettext().then(v => { return v });  }   but i'm getting function return instead of value of v. seems promise not being unwrapped jasmine's expect, happens when running in js.
i know can run promise directly within expect, ideally create function's logic outside of expectations, can feed expectation function call (if any) parameters - instead of polluting test case promise logic.
any ideas?
you don't need resolve promises, return them:
getnameinput(): webdriver.promise.promise<string> {     var nameelement = element(by.id('name'));     return nameelement.gettext(); }   then need have real value returned getnameinput() - resolve in test:
getnameinput().then(v => { console.log(v) });   note that, let expect() resolve implicitly:
expect(getnameinput()).toequal("expected value");      
Comments
Post a Comment