量角器失败
无法创建托管的Promise实例:Promise Manager具有 已被SELENIUM_PROMISE_MANAGER环境变量禁用: 未定义
如果测试中以异步/等待方式编写的任何功能。 如果函数是用promise链编写的,那么一切正常。
以下代码将因上述错误而失败:
spin_lock_irqrestore()
以下代码可以正常运行:
it('Inner', async function () {
await browser.get(this.getRootPath());
await asyncF(); // Fails here
});
async function asyncF (): promise.Promise<boolean> {
const loginButton: ElementFinder = element(by.id('login-btn'));
const res = await loginButton.isDisplayed();
return res;
}
我希望两个代码版本都能以相同的方式工作
答案 0 :(得分:1)
发现了问题。
如果使用异步/等待语法asyncF ()
,则应返回Promise<T>
在return
的情况下,我们实际上返回了promise.Promise<T>
,这似乎就是为什么它没有用于异步/等待的原因。
总结:
async function asyncF (): Promise<boolean> {
const loginButton: ElementFinder = Utils.selectElementById('login-btn');
const res = await loginButton.isDisplayed();
return res;
}
工作完美
答案 1 :(得分:0)
您可以尝试使用async/await
async function asyncF (): promise.Promise<boolean> {
const loginButton: ElementFinder = Utils.selectElementById('login-btn');
const res = await loginButton.isDisplayed();
return res;
}