Headful Puppeteer-屏幕截图重新加载页面 [英] Headful Puppeteer - Screenshot reloads the page

查看:18
本文介绍了Headful Puppeteer-屏幕截图重新加载页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用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)。测试了很多组合、不同的参数、计时器、解决方案等,但都无济于事。有什么建议吗?

推荐答案

我认为必须渲染整个页面。在Windows上运行您的代码时,我有相同的行为。

此更改会使其停止发生:

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

这篇关于Headful Puppeteer-屏幕截图重新加载页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆