gpt4 book ai didi

javascript - Puppeteer:page.screenshot 调整视口(viewport)大小

转载 作者:行者123 更新时间:2023-12-05 00:33:08 25 4
gpt4 key购买 nike

我是 puppeteer 师的新手,如果这是一个菜鸟错误,请原谅。
puppeteer 版本:6.0.0/9.0.0/10.0.0
我正在使用 headless:false 中的 puppeteer 进行页面截图。模式。有一秒钟的闪烁,视口(viewport)似乎在截取屏幕截图的那一刻调整了大小(几乎缩小了一半),然后我们又回到了全尺寸,直到下一个屏幕截图。
这些是我的相关代码位:

const browser = await puppeteer.launch({
args: ['--disable-features=site-per-process'],
ignoreDefaultArgs: ["--hide-scrollbars"],
headless: false
});
...

await page.setViewport({
width: 1000,
height: 500,
deviceScaleFactor: 1
});
...

await page.screenshot({
encoding: "base64",
captureBeyondViewport: false
});
我在网上发现了这个问题,他们声称如果你设置 captureBeyondViewport: false 已经解决了这个问题: https://github.com/puppeteer/puppeteer/issues/7043
我已经用三个不同版本的 puppeteer 进行了测试(见上文)。闪烁的行为无处不在。我在这里做错了什么吗?

最佳答案

对我来说,仅当我同时设置 captureBeyondViewport: false 时才停止调整大小。在 page.screenshotdefaultViewport: nullpuppeteer.launch这是没有任何屏幕截图调整大小的完整代码:

const puppeteer = require('puppeteer');

const wait = (time) => new Promise(function (resolve) { setTimeout(resolve, time) });

(async () => {
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox'], headless: false, defaultViewport: null});
const page = await browser.newPage();
await page.goto('https://en.wikipedia.org/wiki/Albert_Einstein');
await page.screenshot({path: 'screenshot.png', captureBeyondViewport: false});

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

关于javascript - Puppeteer:page.screenshot 调整视口(viewport)大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68059664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com