木偶发射器隐身

时间:2018-08-29 03:02:09

标签: javascript node.js puppeteer google-chrome-headless incognito-mode

我使用ws端点(cdn.example.com)连接到浏览器。

当我启动最终连接的浏览器时,是否可以隐身地启动它?

我知道我可以做这样的事情:

puppeteer.connect({ browserWSEndpoint: '' })

但是隐身会话似乎与最初打开的浏览器绑定在一起。我只希望它本身。

我也看到你可以这样做:

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

但是我不确定这是否是最好的方法。

任何建议将不胜感激。谢谢!

3 个答案:

答案 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 
    }
}