Node.js 有没有一种方法可以覆盖“安全性”;制表符关闭";在木偶演员群里?

Node.js 有没有一种方法可以覆盖“安全性”;制表符关闭";在木偶演员群里?,node.js,puppeteer-cluster,Node.js,Puppeteer Cluster,在我拍摄截图之前,木偶演员团正在关闭标签 我正在使用具有maxConcurrency 8的Puppeter群集。我需要采取截图后,每个页面加载[约20000网址]。Page.screenshot对我没用。我的截图应该包括URL栏和桌面。它基本上就像一个完整的桌面截图。因此,我使用ImageMagick拍摄屏幕截图,(使用xvfb进行多屏幕管理) 问题是: 有时,屏幕截图是在切换到右侧选项卡之前拍摄的 空白屏幕截图,因为当前选项卡已关闭,尚未加载的选项卡出现在前面 有时,由于所有选项卡都已关闭,因

在我拍摄截图之前,木偶演员团正在关闭标签

我正在使用具有maxConcurrency 8的Puppeter群集。我需要采取截图后,每个页面加载[约20000网址]。Page.screenshot对我没用。我的截图应该包括URL栏和桌面。它基本上就像一个完整的桌面截图。因此,我使用ImageMagick拍摄屏幕截图,(使用xvfb进行多屏幕管理)

问题是:
  • 有时,屏幕截图是在切换到右侧选项卡之前拍摄的
  • 空白屏幕截图,因为当前选项卡已关闭,尚未加载的选项卡出现在前面
  • 有时,由于所有选项卡都已关闭,因此无法拍摄屏幕截图时会抛出错误
  • 我正在做的是:当每个页面加载时,我调用page.bringToFront并生成一个child_进程,该进程使用image magic import命令获取桌面的屏幕截图

    cluster.queue(postUrl.href); //for adding urls to queue
    await page.waitForNavigation(); // Wait for page to load before screenshot
    
    //taking screenshot
    const { spawnSync} = require('child_process');
    const child = spawnSync('import', [ '-window', 'root', path]);
    
    不想在页面加载后设置waittime,nodejs ImageMagick不起作用,承诺也似乎不起作用


    我不想让木偶演员自己关闭制表符。相反,它能否在页面加载后发出回调事件,等待回调函数执行并返回,然后关闭选项卡???

    一旦
    集群任务的承诺得到解决,页面将关闭:

    wait cluster.task(异步({page,data})=>{
    //完成此功能后,页面将关闭
    });
    
    要保持页面打开,您可以在结束前等待另一个承诺:

    wait cluster.task(异步({page,data})=>{
    // ...
    等待新的承诺(解决=>{
    //更多代码。。。
    //完成后调用resolve()
    });
    });
    
    最后调用
    resolve()
    函数将解析最后一个承诺,因此也解析整个
    async
    函数。因此,它将关闭该页面。请记住,如果启动群集时需要,您希望将
    超时
    值增加到大于
    30的值(默认值):

    const cluster=wait cluster.launch({
    // ...
    超时:120000//2分钟
    });
    
    一旦
    集群任务
    功能的承诺得到解决,页面将关闭:

    wait cluster.task(异步({page,data})=>{
    //完成此功能后,页面将关闭
    });
    
    要保持页面打开,您可以在结束前等待另一个承诺:

    wait cluster.task(异步({page,data})=>{
    // ...
    等待新的承诺(解决=>{
    //更多代码。。。
    //完成后调用resolve()
    });
    });
    
    最后调用
    resolve()
    函数将解析最后一个承诺,因此也解析整个
    async
    函数。因此,它将关闭该页面。请记住,如果启动群集时需要,您希望将
    超时
    值增加到大于
    30的值(默认值):

    const cluster=wait cluster.launch({
    // ...
    超时:120000//2分钟
    });