我使用ws端点(cdn.example.com
)连接到浏览器。
当我启动最终连接的浏览器时,是否可以隐身地启动它?
我知道我可以做这样的事情:
puppeteer.connect({ browserWSEndpoint: '' })
但是隐身会话似乎与最初打开的浏览器绑定在一起。我只希望它本身。
我也看到你可以这样做:
const incognito = await this.browser.createIncognitoBrowserContext();
但是我不确定这是否是最好的方法。
任何建议将不胜感激。谢谢!
答案 0 :(得分:7)
实现目标的最好方法是将browser标志传递到--incognito
,将puppeteer.launch()
直接启动到隐身模式:
const browser = await puppeteer.launch({
'args' : [ '--incognito' ]
});
或者,您可以使用browser context启动浏览器后创建新的隐身browser.createIncognitoBrowserContext()
:
const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();
您可以使用browserContext.isIncognito()
检查浏览器上下文是否隐身:
if ( context.isIncognito() ) { /* ... */ }
答案 1 :(得分:0)
上述解决方案不适用于我:
创建了隐身窗口,但是当创建新页面时,它不再隐身。
最适合我的解决方案是:
const browser = await puppeteer.launch();
const context = await browser.createIncognitoBrowserContext();
const page = context.newPage();
那么您就可以使用页面了,它是一个隐身页面
答案 2 :(得分:0)
对于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
}
}