我正在用守夜人编写一些测试,试图验证是否已向表中添加一行,就像这样:
browser.elements('css selector', 'tr', function(result) {
result.value.forEach(function (element) {
browser.elementIdText(element.ELEMENT, function (result) {
var rowText = result.value;
if (rowText.includes(randomName)) {
this.verify.ok(...) // this doesn't always run
}
});
});
});
最里面的验证行并非总是在测试用例返回之前运行,我猜是因为elementIdText
是异步运行的(apparently I'm not alone in wondering why)。因此,我如何重构它以确保该块在测试返回成功之前运行?我怀疑这与promise或async / await有关,但是我不确定如何构建它。