Puppeteer发射隐身

rpa*_*cal 7 javascript node.js incognito-mode google-chrome-headless puppeteer

我使用ws端点(puppeteer.connect({ browserWSEndpoint: '' }))连接到浏览器.

当我启动我最终连接的浏览器时,有没有办法以隐身方式启动它?

我知道我可以这样做:

const incognito = await this.browser.createIncognitoBrowserContext();
Run Code Online (Sandbox Code Playgroud)

但似乎隐身会话与最初打开的浏览器相关联.我只是希望它本身.

我也看到你可以这样做:

const baseOptions: LaunchOptions = { args: ['--incognito']};
Run Code Online (Sandbox Code Playgroud)

但我不确定这是不是最好的方式.

任何意见,将不胜感激.谢谢!

MrE*_*MrE 19

上面的解决方案对我不起作用:

创建了一个隐身窗口,但是当创建新页面时,它不再是隐身窗口。

对我有用的解决方案是:

const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();
Run Code Online (Sandbox Code Playgroud)

然后你可以使用页面,它是一个隐身页面

  • 这是真的。运行没有无头的木偶师,你自己看看。其他答案中的页面不是隐身的 (2认同)

Gra*_*ler 13

实现目标的最佳方法是将浏览器直接启动到隐身模式,方法是将--incognito标志传递给puppeteer.launch():

const browser = await puppeteer.launch({
  args: [
    '--incognito',
  ],
});
Run Code Online (Sandbox Code Playgroud)

或者,您可以在启动浏览器后使用以下命令创建新的隐身浏览器上下文browser.createIncognitoBrowserContext():

const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法检查浏览器上下文是否隐身browserContext.isIncognito():

if (context.isIncognito()) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

  • 当浏览器以“--incognito”模式启动时,“newPage()”仍然共享数据而不是隐身。有什么建议吗? (3认同)