我使用 Puppeteer 在 headful 模式下截取全尺寸屏幕截图,因为我大部分时间都需要与浏览器交互。它运行完美,但我注意到一些奇怪的事情:当调用屏幕截图时,它会重新加载页面,因此我在捕获中获得的内容并不总是我在浏览器中看到的内容。
例如,我们以这个 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();
Run Code Online (Sandbox Code Playgroud)
我在 Debian 10 Linux 服务器上运行最新版本的 Puppeteer (13.1.1)。测试了很多组合、不同的参数、计时器、分辨率等,但均无济于事。有什么建议么?
小智 8
我认为这必须与整个页面的渲染有关。在 Windows 上运行你的代码我有相同的行为。
随着这个改变,它就不再发生了:
await page.screenshot({path: 'test.png', captureBeyondViewport: false});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1611 次 |
| 最近记录: |