如何解决mocha 控制台日志显示对象承诺
开始掌握摩卡咖啡,但有一件事我不明白,在下面的代码中
describe('03 Test recent recipe test',() => {
it('Test search async',async () => {
await driver.wait(until.elementLocated(By.name('selectit')));
var recipeName = driver.findElement(By.name('selectit')).getText();
driver.findElement(By.name('selectit')).click();
await driver.wait(until.elementLocated(By.id('name')));
var recipeLabel = driver.findElement(By.id('name')).getText();
await console.log(recipeName + " - " + recipeLabel);
expect(recipeName).to.contain(recipeLabel);
});
});
此测试作为通过返回,但 console.log 输出 - [object Promise] - [object Promise] 这是为什么,期望测试很高兴他们匹配
解决方法
那是因为您误用了 await
语句中的 console.log()
。
当你得到 await
和 recipeName
时你应该 recipeLabel
因为 getText()
返回一个 Promise
。
由于 console.log()
不返回 Promise
,因此您无需await
。
作为旁注,通过对 await
语句进行 console.log()
ing,它不会解析其中的 promise。
您的代码应如下所示:
describe('03 Test recent recipe test',() => {
it('Test search async',async () => {
await driver.wait(until.elementLocated(By.name('selectit')));
var recipeName = await driver.findElement(By.name('selectit')).getText();
await driver.findElement(By.name('selectit')).click();
await driver.wait(until.elementLocated(By.id('name')));
var recipeLabel = await driver.findElement(By.id('name')).getText();
console.log(recipeName + " - " + recipeLabel);
expect(recipeName).to.contain(recipeLabel);
});
});
要使用您拥有的变量并使用 console.log()
打印,您可以在其中 await
每个变量:
var recipeName = driver.findElement(By.name('selectit')).getText();
....
var recipeLabel = driver.findElement(By.id('name')).getText();
console.log(await recipeName + " - " + await recipeLabel);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。