我的代码如下所示:
await enterName();
await enterCity();
await submit();
async enterName() {
element.sendKeys('name');
}
async submit() {
element.submit();
waitForAngular();
}
这里的问题是当调用提交功能(异步)时,它根本无法进行任何网络调用。
我尝试使用controlFlow,但它似乎只有在我提交之前获得url才有效。
protractor.promise.controlFlow.execute( driver.get(url));
await submit();
---------->作品!
但是我的要求是首先打开此网址,填写表单,然后进行异步提交调用。有人可以帮忙吗?
答案 0 :(得分:0)
您需要等待所有返回承诺的函数,包括来自量角器的函数:
class x {
element = element(".test");
async enterName() {
await this.element.sendKeys('name');
}
async enterCity() {
return Promise.resolve();
}
async waitForAngular() {
return Promise.resolve();
}
async submit() {
await this.element.submit();
await this.waitForAngular(); // Assuming this is async as well.
}
async test() {
await this.enterName();
await this.enterCity();
await this.submit();
}
}
答案 1 :(得分:0)
async/await
时必须disable Control Flow。async
处理某些承诺时,函数才应为await
。