这是一种情况。
if (await browser.wait(ExpectedConditions.presenceOf(this.collapsedContinent), 500)) {
await this.helper.click(this.expandCountry);
await this.helper.click(this.chkcountry);
} else {
await this.helper.click(this.chkcountry);
}
我期望我的期望返回true或false,然后执行后续操作。看起来我在这里做错了。
我知道期望返回一个承诺,但是无论如何,我可以期望期望返回一个真假,然后从那里走吗?
我也可以使用其他方法,只要它检查元素的存在即可。我正在使用异步等待,所以我不需要doThis.then(doThat);
我完全想避免使用.then()
答案 0 :(得分:1)
您应该使用isPresent()
方法来实现以下流程,因为现在else
条件永远不会发生。
如果DOM中没有元素,则presenceOf
将在500毫秒后失败。
解决方案:
if (await this.collapsedContinent.isPresent()) {
await this.helper.click(this.expandCountry);
await this.helper.click(this.chkcountry);
} else {
await this.helper.click(this.chkcountry);
}
答案 1 :(得分:0)
或者,如果您确实需要等待检查,则browser.wait不会返回true / false,但是您可以使用.then来实现:
if (await browser.wait(ExpectedConditions.presenceOf(this.collapsedContinent), 500).then(()=> true, err=> false)) {
await this.helper.click(this.expandCountry);
await this.helper.click(this.chkcountry);
} else {
await this.helper.click(this.chkcountry);
}