我不确定我是否在TypeScript和Protractor代码中以正确的方式使用async / await。如果您看到以下代码,那么规范会说await并调用page对象,而该页面对象又是async / await。页面对象调用另一个方法,该方法再次是异步/等待。这是正确的实现吗?有没有最佳做法?我觉得我到处都使用async / await。
规范:
await login.loginTomySiteTools();
页面对象:
async loginTomySiteTools(): Promise<void> {
await this.helper.enterText(this.email, this.mySuperApp.userID);
await this.helper.click(this.btnNext);
}
助手:
async enterText(element: WebElement, textToEnter: string): Promise<void> {
await browser.sleep(1000);
await element.sendKeys(textToEnter);
}
答案 0 :(得分:1)
据我所知,奇怪的是,您以正确的方式使用了。 Protractor的本质就是所有浏览器动作都用Promises(需要等待)包装,然后使用Page Object Model,我们在页面对象中声明的所有功能(通常包含浏览器动作)也都需要等待。最后,我们等待着同样的动作。
我实际上是不久前问过similar question的,我不确定这些问题是否足够相似以至于可以标记为重复,所以我暂时不作标记。
就最佳做法而言,我认为您采用的方法很好。