Javascript 木偶演员和剧作家在拍摄截图时会用铬涂满脑袋的虫子

Javascript 木偶演员和剧作家在拍摄截图时会用铬涂满脑袋的虫子,javascript,node.js,automation,puppeteer,playwright,Javascript,Node.js,Automation,Puppeteer,Playwright,我目前正在开发一个node.js脚本,需要使用Puppeter启动一个headful chromium实例,然后每3秒制作一个页面截图,这是我的代码: const puppeteer = require('puppeteer'); async function init (){ const browser = await puppeteer.launch({headless: true}); const page = await browser.newPage(); await page

我目前正在开发一个node.js脚本,需要使用Puppeter启动一个headful chromium实例,然后每3秒制作一个页面截图,这是我的代码:

const puppeteer = require('puppeteer');

async function init (){
 const browser = await puppeteer.launch({headless: true});
 const page = await browser.newPage();
 await page.goto('https://example.com');
 screenshot(page)
};

async function screenshot(page){

 let buffer = await page.screenshot();
 let imageBuffer = buffer.toString('base64');
 // save imageBuffer to database
 setTimeout(screenshot, 3000, page)
}
我目前的问题是,我需要用户仍然能够在浏览器和计算机上正常导航,但这是不可能的,因为:

  • 制作屏幕截图时,页面会延迟,正如您在以下视频中看到的:
  • 制作屏幕截图时,浏览器窗口聚焦并位于所有窗口的顶部

  • 我也尝试过使用Playwright,但当使用chromium时也会出现同样的错误。有人能帮忙吗。

    在剧作家中,请执行以下操作:

    //影响所有平台。
    const page=await browser.newPage({viewport:null});
    
    //针对使用Apple硬件和视网膜显示器的用户的本地修复程序。
    const page=await browser.newPage({deviceScaleFactor:2});
    

    我在网站上贴了详细的回复。请随时跟进并提出问题/请求功能

    到底是什么阻止了“用户仍然能够在浏览器和计算机上正常导航”?你的意思是木偶演员制作截图时的闪烁(缩小)会引起问题吗?从第一个版本开始就是这样,它不会影响任何东西,只是一个视觉上的小故障。当你需要每3秒钟做一次屏幕截图时,它确实会产生效果。此外,这些现象与铬本身有关,而与木偶演员或剧作家无关。如果您在创建屏幕截图时遇到性能问题,这是一个已知且有文档记录的问题,尤其是OS X,但我也听到过与性能相关的抱怨,包括人头满和无头运行。。。。。。您可以尝试使用
    ignoreDefaultArgs:['--disable dev shm usage']
    args启动puppeter,它可能提供更好的性能。关于对窗口的关注:这只是一个视觉上的东西,它并不影响木偶演员如何与页面交互。如果您觉得麻烦,请随时为Chromium团队开出罚单:。好的,谢谢,我们会尽快报告。谢谢!但是我仍然有一个问题,当截图制作时,如何防止窗口聚焦?那是因为我们没有充分的理由将窗口放在前面。让我跟进这个bug并修复它!