让我们说我有对象列表和创建按钮。通常,对象创建速度很快,没有加载指示符或其他内容。我很酷的创作测试:
const items = await page.$$('.item');
const itemsCount = items.length;
await page.click('#create-btn');
await page.waitFor((c) => document.querySelectorAll('.item').length === c, {}, itemsCount + 1);
这有效(可能有一些错别字...),但是如您所见,这里没有“期望”,
导致这种waitFor
的构造。
这正常吗?
(目前,我正在将非异步量角器测试重写为伪造者,并且在大多数情况下我都没什么可料的)
答案 0 :(得分:1)
您可以做的是给waitFor
超时,然后检查是否没有错误:
let error;
await page.waitFor(
(c) => document.querySelectorAll('.item').length === c, {},
{timeout: 500}, /*Let's give it half a sec*/
itemsCount + 1).catch(e => error = e);
assert(error).toBeNull();