web-dev-qa-db-ja.com

Puppeteer Launch Incognito

Wsエンドポイント(puppeteer.connect({ browserWSEndpoint: '' }))を使用してブラウザに接続しています。

最終的に接続するブラウザーを起動すると、これをシークレットモードで起動する方法はありますか?

私はこのようなことができることを知っています:

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

しかし、シークレットセッションは最初に開いたブラウザに関連付けられているようです。私はそれがそれ自体であることを望みます。

私もこれを行うことができると思います:

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

しかし、これが最善の方法であるかどうかはわかりません。

任意のアドバイスをいただければ幸いです。ありがとうございました!

12
rpascal

目標を達成するための最良の方法は、 ブラウザ_--incognito_ フラグを puppeteer.launch()

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

または、 browser.createIncognitoBrowserContext() を使用してブラウザーを起動した後、新しいシークレット ブラウザーコンテキスト を作成できます。

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

browserContext.isIncognito() を使用して、ブラウザコンテキストがシークレットかどうかを確認できます。

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

上記の解決策は私にとってうまくいきませんでした:

シークレットウィンドウが作成されますが、新しいページが作成されると、シークレットウィンドウではなくなります。

私のために働いた解決策は:

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

それからあなたはページを使うことができ、それはシークレットページです

0
MrE

Puppeteerのシャープにとっては、それはやや乱雑ですが、これはうまくいくようです。うまくいけば、誰かを助けるでしょう。

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