【问题标题】:Headful Puppeteer - Screenshot reloads the pageHeadful Puppeteer - 屏幕截图重新加载页面
【发布时间】:2022-01-22 01:36:37
【问题描述】:

我正在使用 Puppeteer 在 headful 模式下拍摄全尺寸屏幕截图,因为我大部分时间都需要与浏览器交互。它运行完美,但我注意到一些奇怪的事情:当调用屏幕截图时,它重新加载页面,所以我在捕获中得到的并不总是我在浏览器中看到的。

this URL 为例。如果我想展示埃菲尔铁塔,我需要点击幻灯片放映。到目前为止没有问题。但是一旦截取屏幕截图,页面就会刷新并回到沙发上女人的初始照片......我不知道是什么导致了这种行为。

这是我的代码:

const puppeteer = require('puppeteer');
args=['--window-size=1920,1080'];
const browser=await puppeteer.launch({ headless: false, defaultViewport: null, args);
const page=(await browser.pages())[0];
await page.goto('https://url.com');
await page.waitForTimeout(10000); // 10 sec timeframe to allow navigation
await page.screenshot({path: 'test.png', quality: 100, fullPage: true});
await browser.close();

我在 Debian 10 Linux 服务器上运行 Puppeteer 的最新版本 (13.1.1)。测试了很多组合、不同的参数、计时器、分辨率等,但无济于事。有什么建议吗?

【问题讨论】:

    标签: node.js puppeteer


    【解决方案1】:

    我认为它必须与整页的渲染有关。在 windows 上运行你的代码我有同样的行为。

    这种变化不会发生:

    await page.screenshot({path: 'test.png', captureBeyondViewport: false});
    

    【讨论】:

    • 谢谢,我不知道这个选项。但是,它对我没有任何改变。但据我所知,我不是唯一拥有此particular issue 的人。
    • 这对我有用。我有 fullPage: true 和 captureBeyondViewport: false 并且在屏幕截图之前它不会闪烁和调整大小
    猜你喜欢
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 2018-07-30
    相关资源
    最近更新 更多