我是量角器新手。我目前正在使用量角器编写自动化测试,以检查某个元素是否已启用,并仅在启用该元素时才执行操作。以下是我的代码。我想使用异步/等待,但当我使用异步等待时,测试永远不会进入循环。但即使不执行测试也会通过。请帮忙。
if (await this.button.isEnabled()) {
await this.text.sendKeys('abc');
await this.send.click();
}
用于同步 if 块和 if 块之后的逻辑。 创建一个异步函数,其中包含 if 逻辑。就像下面这样
async a(){
async function b() {
if(condition){
//await async call
await new Promise((resolve, reject) => {
setTimeout(function(){
resolve("successful");
}, 10000);
});
}
}
await b();
console.log('now');
//post if synchronous logic
}
在上面的代码中,“now”只会在 10 秒后打印。如果您在 b() 之前删除 await,则在这 10 秒结束之前将立即打印“now”。
你记得声明你的函数吗
async
?这对我的应用程序有用:
async function doStuff() {
if (await page.button.isEnabled()) {
console.log('enabled');
} else {
console.log('disabled');
}
}
doStuff();
这不太必要(我不需要它),但如果您运行的是旧版本的 Protractor,您可能必须在 protractor.config
中禁用
Selenium Promise Manager:
exports.config = {
...
SELENIUM_PROMISE_MANAGER: false,
...
};