如何保持puppeteer浏览器运行后台而不跳到前台?

avo*_*ado 5 node.js puppeteer

当用于puppeteer通过 a 抓取一堆网站时for-loop,每当创建一个新页面时,浏览器都会跳转到前台,这阻碍了我在计算机上做其他事情。

即使我设置了以下参数,它仍然不起作用,那么我怎样才能让浏览器安静地运行而不跳到前台并中断我呢?

我需要在headful模式下运行,而不是headless模式。

headless: false,
args: [
                '--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
                '--disable-background-timer-throttling',
                '--disable-backgrounding-occluded-windows',
                '--disable-renderer-backgrounding',
            ]
Run Code Online (Sandbox Code Playgroud)

mbi*_*bit 9

在编辑器中打开 Chromium's Info.plist(你可以在这里找到它node_modules/puppeteer/.local-chromium/mac-XXXXXX/chrome-mac/Chromium.app/Contents/Info.plist)并在第一个<dict>和之前添加以下部分<key>

<key>LSBackgroundOnly</key>
<string>True</string>
Run Code Online (Sandbox Code Playgroud)

这适用于任何 OS X 应用程序。

来源:在 OS X 中打开时防止应用程序窃取焦点

  • 在 Windows 上怎么做? (4认同)
  • @avocado,你应该将它添加到Chrome,然后找到chrome的info.plist,它可能位于`path/to/Chrome.app/Contents/Info.plist`,而不是user_data文件夹。 (2认同)
  • 有什么方法可以为Linux做到这一点吗? (2认同)