web-dev-qa-db-fra.com

Puppeteer Launch Incognito

Je suis connecté à un navigateur utilisant un point de terminaison ws (puppeteer.connect({ browserWSEndpoint: '' })).

Lorsque je lance le navigateur auquel je me connecte finalement, existe-t-il un moyen de le lancer en mode incognito?

Je sais que je peux faire quelque chose comme ça:

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

Mais il semble que la session de navigation privée soit liée au navigateur initialement ouvert. Je veux juste que ce soit tout seul.

Je vois aussi que vous pouvez le faire:

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

Mais je ne sais pas si c'est la meilleure façon ou non.

Tout avis sera le bienvenu. Je vous remercie!

12
rpascal

La meilleure façon d'atteindre votre objectif est de lancer le navigateur directement en mode navigation privée en passant le drapeau --incognito à puppeteer.launch() :

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

Alternativement, vous pouvez créer un nouveau incognito contexte du navigateur après avoir lancé le navigateur en utilisant browser.createIncognitoBrowserContext() :

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

Vous pouvez vérifier si un contexte de navigateur est incognito en utilisant browserContext.isIncognito() :

if (context.isIncognito()) { /* ... */ }
13
Grant Miller

les solutions ci-dessus n'ont pas fonctionné pour moi:

une fenêtre de navigation privée est créée, mais lorsque la nouvelle page est créée, elle n'est plus en navigation privée.

La solution qui a fonctionné pour moi a été:

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

alors vous pouvez utiliser la page et c'est une page de navigation privée

0
MrE

Pour Puppeteer Sharp, c'est plutôt désordonné, mais cela semble fonctionner. J'espère que cela aide quelqu'un.

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 
    }
}
0
atoms