我正在尝试使用Puppeteer获取页面的描述,我有一个高阶函数,可以为该函数提供页面对象:
export const checkDescription = async page => {
const metaDescription = await page.$eval(
'meta[name="description"]',
description => description.getAttribute("content")
);
return metaDescription;
};
该功能按预期工作。 然后,我正在使用Jest进行测试。
const testDescription = await withPage(checkDescription)(URL);
expect(typeof testDescription).toBe("string");
我有以下错误:
Error: Evaluation failed: ReferenceError: cov_4kq3tptqc is not defined
at __puppeteer_evaluation_script__:2:41
at ExecutionContext.evaluateHandle
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
-- ASYNC --
at ExecutionContext.<anonymous>
at ExecutionContext.evaluate
at ExecutionContext.<anonymous>
at ElementHandle.$eval
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
-- ASYNC --
如果我只是将函数粘贴到jest文件中,那么它将按预期工作
答案 0 :(得分:2)
如果需要收集险种,可以通过在浏览器上下文函数(带有/* istanbul ignore next */
的行)之前添加.eval
来解决,以防止伊斯坦布尔险种注入。
答案 1 :(得分:0)
在puppeteer中,运行测试时,伊斯坦布尔正在插入以下内容:
/* istanbul ignore next */cov_4kq3tptqc.f[7]++;
cov_4kq3tptqc.s[19]++;
已通过在config.collectCoverage = false;
上添加jest.config
来解决