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

xvw2m8pv  于 2023-06-05  发布在  Node.js
关注(0)|答案(2)|浏览(393)

当使用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',
            ]
uxh89sit

uxh89sit1#

在编辑器中打开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

iqih9akk

iqih9akk2#

伙计们,你可以这样做,一切都是顶级的headless: true我有这样的

const browser = await puppeteer.launch({
    headless: true,
    executablePath: 'C:/Users/User/Desktop/Chrome-win/chrome.exe'
});

相关问题