Reputation: 753
I am connected to a browser using a ws endpoint (puppeteer.connect({ browserWSEndpoint: '' })
).
When I launch the browser that I ultimately connect to, is there a way to launch this in incognito?
I know I can do something like this:
const incognito = await this.browser.createIncognitoBrowserContext();
But it seems like the incognito session is tied to the originally opened browser. I just want it to be by itself.
I also see you can do this:
const baseOptions: LaunchOptions = { args: ['--incognito']};
But I am not sure if this is the best way or not.
Any advice would be appreciated. Thank you!
Upvotes: 27
Views: 44034
Reputation: 41
Unfortunately, the browser.createIncognitoBrowserContext() has been deprecated making the other answers outdated. As a work around, you can launch the browser in incognito and access the default context and it's page via pages() which is the existing Incognito page.
const browser = await puppeteer.launch({
args: [
'--incognito',
],
});
const context = browser.defaultBrowserContext();
const page = (await context.pages())[0]
Upvotes: 4
Reputation: 3093
For Puppeteer sharp it's rather messy but this seems to work.. Hopefully it helps someone.
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
}
}
Upvotes: -1
Reputation: 20798
the solutions above didn't work for me:
an incognito window is created, but then when the new page is created, it is no longer incognito.
The solution that worked for me was:
const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();
then you can use page and it's an incognito page
Upvotes: 38
Reputation: 29037
The best way to accomplish your goal is to launch the browser directly into incognito mode by passing the --incognito
flag to puppeteer.launch()
:
const browser = await puppeteer.launch({
args: [
'--incognito',
],
});
Alternatively, you can create a new incognito browser context after launching the browser using browser.createIncognitoBrowserContext()
:
const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();
You can check whether a browser context is incognito using browserContext.isIncognito()
:
if (context.isIncognito()) { /* ... */ }
Upvotes: 41