Wsエンドポイント(puppeteer.connect({ browserWSEndpoint: '' })
)を使用してブラウザに接続しています。
最終的に接続するブラウザーを起動すると、これをシークレットモードで起動する方法はありますか?
私はこのようなことができることを知っています:
const incognito = await this.browser.createIncognitoBrowserContext();
しかし、シークレットセッションは最初に開いたブラウザに関連付けられているようです。私はそれがそれ自体であることを望みます。
私もこれを行うことができると思います:
const baseOptions: LaunchOptions = { args: ['--incognito']};
しかし、これが最善の方法であるかどうかはわかりません。
任意のアドバイスをいただければ幸いです。ありがとうございました!
目標を達成するための最良の方法は、 ブラウザ を _--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()) { /* ... */ }
_
上記の解決策は私にとってうまくいきませんでした:
シークレットウィンドウが作成されますが、新しいページが作成されると、シークレットウィンドウではなくなります。
私のために働いた解決策は:
const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();
const page = context.newPage();
それからあなたはページを使うことができ、それはシークレットページです
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
}
}