【问题标题】:Not able to run puppeteer-full page screenshot npm package无法运行 puppeteer-整页截图 npm 包
【发布时间】:2022-06-17 08:12:57
【问题描述】:

我正在使用这里提到的 pupeeter 包 https://www.npmjs.com/package/puppeteer-full-page-screenshot

代码脚本

import puppeteer from 'puppeteer';
import fullPageScreenshot from 'puppeteer-full-page-screenshot';

(async () => {
   const browser = await puppeteer.launch();
   const page = await browser.newPage();
   await page.setViewport({ width: 1920, height: 1080 });
   await page.goto('http://lambdatest.com/');

   await fullPageScreenshot(page, { path: './page.png' });

   await browser.close();
})();

但运行脚本后,我收到以下错误

(node:39184) UnhandledPromiseRejectionWarning: TypeError: fullPageScreenshot is not a function
    at file:///Users/arushsaxena/Desktop/DotlapseDemo/smartui-node-sample/puppeteer-lib.js:10:10
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:39184) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:39184) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

【问题讨论】:

    标签: javascript node.js puppeteer screenshot


    【解决方案1】:

    使用 require 而不是 import 对我有用:

    const puppeteer = require('puppeteer');
    const fullPageScreenshot = require('puppeteer-full-page-screenshot').default;
    
    (async () => {
       const browser = await puppeteer.launch();
       const page = await browser.newPage();
       await page.setViewport({ width: 1920, height: 1080 });
       await page.goto('http://lambdatest.com/');
    
       await fullPageScreenshot(page, { path: './page.png' });
    
       await browser.close();
    })();
    

    【讨论】:

      【解决方案2】:
      import puppeteer from 'puppeteer';
      
      import fullPageScreenshot from 'puppeteer-full-page-screenshot';
      
      (async () => {
         const browser = await puppeteer.launch();
      
         const page = await browser.newPage();
      
         await page.setViewport({ width: 1920, height: 1080 });
      
         await page.goto('http://lambdatest.com/');
      
      
         await page.screenshot({ path: 'fullpage.png', fullPage: true });
      
         await browser.close();
      })();
      

      【讨论】:

      • 你在哪里使用整页截图。这是您使用的简单的 puppeteer 功能。
      • 您的答案可以通过添加有关代码的作用以及它如何帮助 OP 的更多信息来改进。
      • 你可以看到我在倒数第二行传递了 fullPage 选项。
      • 这不是一个真正的答案,因为它根本没有解决这个问题,特别是关于 puppeteer-full-page-screenshot。此答案中的代码没有意义,即使导入了 fullPageScreenshot,也没有使用 fullPageScreenshot,并且代码中使用的标准 screenshot() 函数不能替代 fullPageScreenshot()。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 2016-08-31
      相关资源
      最近更新 更多