Puppeteer 启动隐身

Puppeteer Launch Incognito

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

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

我知道我可以做这样的事情:

const incognito = await this.browser.createIncognitoBrowserContext();

但隐身会话似乎与最初打开的浏览器相关联。我只想让它独立。

我也看到你可以这样做:

const baseOptions: LaunchOptions = { args: ['--incognito']};

但我不确定这是否是最好的方法。

如有任何建议,我们将不胜感激。谢谢!

实现目标的最佳方式是启动 browser directly into incognito mode by passing the --incognito flag to puppeteer.launch():

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

或者,您可以创建一个新的隐身模式 browser context after launching the browser using browser.createIncognitoBrowserContext():

const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();

您可以使用 browserContext.isIncognito():

检查浏览器上下文是否隐身
if (context.isIncognito()) { /* ... */ }

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

创建了隐身模式 window,但是当创建新页面时,它不再是隐身模式。

对我有用的解决方案是:

const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();

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

对于 Puppeteer sharp 来说,它相当混乱,但这似乎有效。希望它对某人有所帮助。

using (Browser browser = await Puppeteer.LaunchAsync(options))
{
     // create the async context 
    var context = await browser.CreateIncognitoBrowserContextAsync();

    // get the page created by default when launch async ran and close it whilst keeping the browser active
    var browserPages = await browser.PagesAsync();
    await browserPages[0].CloseAsync();

    // create a new page using the incognito context
    using (Page page = await context.NewPageAsync())
    {
        // do something 
    }
}