【问题标题】:How to keep puppeteer browser running background without jumping to foreground?如何让 puppeteer 浏览器在后台运行而不跳转到前台?
【发布时间】:2020-03-09 01:25:17
【问题描述】:

当使用puppeteer通过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',
            ]

【问题讨论】:

    标签: node.js puppeteer


    【解决方案1】:

    在编辑器中打开 Chromium 的 Info.plist(您可以在此处找到 node_modules/puppeteer/.local-chromium/mac-XXXXXX/chrome-mac/Chromium.app/Contents/Info.plist)并在第一个 <dict> 之后和 <key> 之前添加以下内容:

    <key>LSBackgroundOnly</key>
    <string>True</string>
    

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

    来源:Keep applications from stealing focus when opening in OS X

    【讨论】:

    • 我实际上使用的是 Chrome 和一个自定义的 user_data 文件夹,并且我将上述密钥添加到 Info.plist(在 user_data 文件夹内),不起作用
    • @avocado 你应该把它添加到 Chrome 然后找到 chrome 的 info.plist,它可能在 path/to/Chrome.app/Contents/Info.plist,而不是 user_data 文件夹。
    • 有什么方法可以为 linux 做到这一点?
    • 在Windows上怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2015-06-20
    • 1970-01-01
    • 2021-05-05
    • 2016-03-20
    • 2017-07-19
    • 2023-03-22
    相关资源
    最近更新 更多