javascript - 将 Jest 与 Puppeteer 一起使用 : Evaluation failed: ReferenceError: cov_4kq3tptqc is not defined

标签 javascript web-scraping automated-tests jestjs puppeteer

我正在尝试使用 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 文件中,那么它会按预期工作

最佳答案

如果需要采集覆盖,可以通过添加/* istanbul ignore next */来修复在浏览器上下文函数(带有 .eval 的行)之前,以防止 Istanbul 尔覆盖注入(inject)。

关于javascript - 将 Jest 与 Puppeteer 一起使用 : Evaluation failed: ReferenceError: cov_4kq3tptqc is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55272295/

相关文章:

javascript - 如何检查浏览器是否基于 Chromium?

javascript - mongodb:从嵌套的引用数组中提取一项

javascript - 访问没有 ID 的元素的父元素

python - 使用 python-Scrapy 抓取动态内容

xpath - 以编程方式将 Microsoft Teams channel 中的聊天消息导出为 Word 或 pdf,无需管理员角色、权限或权限

javascript - 如何使用 Puppeteer 解决分页网页抓取问题?正确定位 Node ,但在 for 循环中单击它不断抛出错误

selenium - 区分测试用例类型

javascript - 如何定义装饰器的类型以防止丢失装饰函数的类型信息?

automation - Vividus 工具不会在大小超过 4Gb 的项目中启动测试(需要 zip64 扩展)

javascript - 如何使用 Cucumber\Ruby\PageObject 从浏览器 JavaScript 全局变量中获取值?