How to use createIncognitoBrowserContext method in Puppeteer

Best JavaScript code snippet using puppeteer

browsercontext.spec.js

Source: browsercontext.spec.js Github

copy

Full Screen

...31 expect(error.message).toContain('cannot be closed');32 });33 it('should create new incognito context', async function({browser, server}) {34 expect(browser.browserContexts().length).toBe(1);35 const context = await browser.createIncognitoBrowserContext();36 expect(context.isIncognito()).toBe(true);37 expect(browser.browserContexts().length).toBe(2);38 expect(browser.browserContexts().indexOf(context) !== -1).toBe(true);39 await context.close();40 expect(browser.browserContexts().length).toBe(1);41 });42 it('should close all belonging targets once closing context', async function({browser, server}) {43 expect((await browser.pages()).length).toBe(1);44 const context = await browser.createIncognitoBrowserContext();45 await context.newPage();46 expect((await browser.pages()).length).toBe(2);47 expect((await context.pages()).length).toBe(1);48 await context.close();49 expect((await browser.pages()).length).toBe(1);50 });51 it('window.open should use parent tab context', async function({browser, server}) {52 const context = await browser.createIncognitoBrowserContext();53 const page = await context.newPage();54 await page.goto(server.EMPTY_PAGE);55 const [popupTarget] = await Promise.all([56 utils.waitEvent(browser, 'targetcreated'),57 page.evaluate(url => window.open(url), server.EMPTY_PAGE)58 ]);59 expect(popupTarget.browserContext()).toBe(context);60 await context.close();61 });62 it('should fire target events', async function({browser, server}) {63 const context = await browser.createIncognitoBrowserContext();64 const events = [];65 context.on('targetcreated', target => events.push('CREATED: ' + target.url()));66 context.on('targetchanged', target => events.push('CHANGED: ' + target.url()));67 context.on('targetdestroyed', target => events.push('DESTROYED: ' + target.url()));68 const page = await context.newPage();69 await page.goto(server.EMPTY_PAGE);70 await page.close();71 expect(events).toEqual([72 'CREATED: about:blank',73 `CHANGED: ${server.EMPTY_PAGE}`,74 `DESTROYED: ${server.EMPTY_PAGE}`75 ]);76 await context.close();77 });78 it('should wait for a target', async function({browser, server}) {79 const context = await browser.createIncognitoBrowserContext();80 let resolved = false;81 const targetPromise = context.waitForTarget(target => target.url() === server.EMPTY_PAGE);82 targetPromise.then(() => resolved = true);83 const page = await context.newPage();84 expect(resolved).toBe(false);85 await page.goto(server.EMPTY_PAGE);86 const target = await targetPromise;87 expect(await target.page()).toBe(page);88 await context.close();89 });90 it('should timeout waiting for a non-existent target', async function({browser, server}) {91 const context = await browser.createIncognitoBrowserContext();92 const error = await context.waitForTarget(target => target.url() === server.EMPTY_PAGE, {timeout: 1}).catch(e => e);93 expect(error).toBeInstanceOf(TimeoutError);94 await context.close();95 });96 it('should isolate localStorage and cookies', async function({browser, server}) {97 /​/​ Create two incognito contexts.98 const context1 = await browser.createIncognitoBrowserContext();99 const context2 = await browser.createIncognitoBrowserContext();100 expect(context1.targets().length).toBe(0);101 expect(context2.targets().length).toBe(0);102 /​/​ Create a page in first incognito context.103 const page1 = await context1.newPage();104 await page1.goto(server.EMPTY_PAGE);105 await page1.evaluate(() => {106 localStorage.setItem('name', 'page1');107 document.cookie = 'name=page1';108 });109 expect(context1.targets().length).toBe(1);110 expect(context2.targets().length).toBe(0);111 /​/​ Create a page in second incognito context.112 const page2 = await context2.newPage();113 await page2.goto(server.EMPTY_PAGE);114 await page2.evaluate(() => {115 localStorage.setItem('name', 'page2');116 document.cookie = 'name=page2';117 });118 expect(context1.targets().length).toBe(1);119 expect(context1.targets()[0]).toBe(page1.target());120 expect(context2.targets().length).toBe(1);121 expect(context2.targets()[0]).toBe(page2.target());122 /​/​ Make sure pages don't share localstorage or cookies.123 expect(await page1.evaluate(() => localStorage.getItem('name'))).toBe('page1');124 expect(await page1.evaluate(() => document.cookie)).toBe('name=page1');125 expect(await page2.evaluate(() => localStorage.getItem('name'))).toBe('page2');126 expect(await page2.evaluate(() => document.cookie)).toBe('name=page2');127 /​/​ Cleanup contexts.128 await Promise.all([129 context1.close(),130 context2.close()131 ]);132 expect(browser.browserContexts().length).toBe(1);133 });134 it('should work across sessions', async function({browser, server}) {135 expect(browser.browserContexts().length).toBe(1);136 const context = await browser.createIncognitoBrowserContext();137 expect(browser.browserContexts().length).toBe(2);138 const remoteBrowser = await puppeteer.connect({139 browserWSEndpoint: browser.wsEndpoint()140 });141 const contexts = remoteBrowser.browserContexts();142 expect(contexts.length).toBe(2);143 await remoteBrowser.disconnect();144 await context.close();145 });146 });...

Full Screen

Full Screen

browsercontext.js

Source: browsercontext.js Github

copy

Full Screen

...30})31test.serial('BrowserContext should create new incognito context', async t => {32 const { browser, server } = t.context33 t.is(browser.browserContexts().length, 1)34 const context = await browser.createIncognitoBrowserContext()35 t.true(context.isIncognito())36 t.is(browser.browserContexts().length, 2)37 t.true(browser.browserContexts().indexOf(context) !== -1)38 await context.close()39 t.is(browser.browserContexts().length, 1)40})41test.serial(42 'BrowserContext should close all belonging targets once closing context',43 async t => {44 const { browser, server } = t.context45 const testResult = (await browser.pages()).length46 t.is(testResult, 1)47 const context = await browser.createIncognitoBrowserContext()48 await context.newPage()49 const testResult1 = (await browser.pages()).length50 t.is(testResult1, 2)51 const testResult2 = (await context.pages()).length52 t.is(testResult2, 1)53 await context.close()54 const testResult3 = (await browser.pages()).length55 t.is(testResult3, 1)56 }57)58test.serial(59 'BrowserContext window.open should use parent tab context',60 async t => {61 const { browser, server } = t.context62 const context = await browser.createIncognitoBrowserContext()63 const page = await context.newPage()64 await page.goto(server.EMPTY_PAGE)65 const [popupTarget] = await Promise.all([66 utils.waitEvent(browser, 'targetcreated'),67 page.evaluate(url => window.open(url), server.EMPTY_PAGE)68 ])69 t.is(popupTarget.browserContext(), context)70 await context.close()71 }72)73test.serial('BrowserContext should fire target events', async t => {74 const { browser, server } = t.context75 const context = await browser.createIncognitoBrowserContext()76 const events = []77 context.on('targetcreated', target => events.push('CREATED: ' + target.url()))78 context.on('targetchanged', target => events.push('CHANGED: ' + target.url()))79 context.on('targetdestroyed', target =>80 events.push('DESTROYED: ' + target.url())81 )82 const page = await context.newPage()83 await page.goto(server.EMPTY_PAGE)84 await page.close()85 t.deepEqual(events, [86 'CREATED: about:blank',87 `CHANGED: ${server.EMPTY_PAGE}`,88 `DESTROYED: ${server.EMPTY_PAGE}`89 ])90 await context.close()91})92test.serial('BrowserContext should wait for a target', async t => {93 const { browser, server } = t.context94 const context = await browser.createIncognitoBrowserContext()95 let resolved = false96 const targetPromise = context.waitForTarget(97 target => target.url() === server.EMPTY_PAGE98 )99 targetPromise.then(() => (resolved = true))100 const page = await context.newPage()101 t.false(resolved)102 await page.goto(server.EMPTY_PAGE)103 const target = await targetPromise104 const testResult = await target.page()105 t.is(testResult, page)106 await context.close()107})108test.serial(109 'BrowserContext should timeout waiting for a non-existent target',110 async t => {111 const { browser, server } = t.context112 const context = await browser.createIncognitoBrowserContext()113 const error = await context114 .waitForTarget(target => target.url() === server.EMPTY_PAGE, {115 timeout: 1116 })117 .catch(e => e)118 t.true(error instanceof TimeoutError)119 await context.close()120 }121)122test.serial(123 'BrowserContext should isolate localStorage and cookies',124 async t => {125 const { browser, server } = t.context126 /​/​ Create two incognito contexts.127 const context1 = await browser.createIncognitoBrowserContext()128 const context2 = await browser.createIncognitoBrowserContext()129 t.is(context1.targets().length, 0)130 t.is(context2.targets().length, 0)131 /​/​ Create a page in first incognito context.132 const page1 = await context1.newPage()133 await page1.goto(server.EMPTY_PAGE)134 await page1.evaluate(() => {135 localStorage.setItem('name', 'page1')136 document.cookie = 'name=page1'137 })138 t.is(context1.targets().length, 1)139 t.is(context2.targets().length, 0)140 /​/​ Create a page in second incognito context.141 const page2 = await context2.newPage()142 await page2.goto(server.EMPTY_PAGE)143 await page2.evaluate(() => {144 localStorage.setItem('name', 'page2')145 document.cookie = 'name=page2'146 })147 t.is(context1.targets().length, 1)148 t.is(context1.targets()[0], page1.target())149 t.is(context2.targets().length, 1)150 t.is(context2.targets()[0], page2.target())151 /​/​ Make sure pages don't share localstorage or cookies.152 const testResult = await page1.evaluate(() => localStorage.getItem('name'))153 t.is(testResult, 'page1')154 const testResult1 = await page1.evaluate(() => document.cookie)155 t.is(testResult1, 'name=page1')156 const testResult2 = await page2.evaluate(() => localStorage.getItem('name'))157 t.is(testResult2, 'page2')158 const testResult3 = await page2.evaluate(() => document.cookie)159 t.is(testResult3, 'name=page2')160 /​/​ Cleanup contexts.161 await Promise.all([context1.close(), context2.close()])162 t.is(browser.browserContexts().length, 1)163 }164)165test.serial('BrowserContext should work across sessions', async t => {166 const { browser, server } = t.context167 t.is(browser.browserContexts().length, 1)168 const context = await browser.createIncognitoBrowserContext()169 t.is(browser.browserContexts().length, 2)170 const remoteBrowser = await helper.newBrowser(browser.wsEndpoint())171 const contexts = remoteBrowser.browserContexts()172 t.is(contexts.length, 2)173 await remoteBrowser.disconnect()174 await context.close()...

Full Screen

Full Screen

app.js

Source: app.js Github

copy

Full Screen

...15 const opt = await findChrome(option);16 /​/​ opt.headless = false17 /​/​ opt.args = ['--incognito']18 const browser = await puppeteer.launch(opt);19 /​/​ const context = await browser.createIncognitoBrowserContext();20 const url = `http:/​/​127.0.0.1:${21 cache ? "8081" : "8080"22 }/​assets/​${type}_load.html`;23 /​/​ const context = await browser.createIncognitoBrowserContext();24 const records = [];25 for (let i = 0; i < cycle; i++) {26 const page = await browser.newPage();27 page.setCacheEnabled(cache);28 console.time("time");29 /​/​ console.log(url)30 let now = Date.now();31 page.on("load", () => {32 records.push(Date.now() - now);33 console.timeEnd("time");34 });35 await page.goto(url);36 await page.close();37 }38 await browser.close();39 return records;40 /​/​ fs.writeFileSync('no-cache-16mb.json', JSON.stringify(records))41}42/​/​ 测试 fetch 在有缓存和🈚️缓存情况下 差别43async function fetchApiTest({44 option = {},45 type = "9mb",46 cache = false,47 cycle = 50,48}) {49 const opt = await findChrome(option);50 /​/​ opt.headless = false51 /​/​ opt.args = ['--incognito']52 const browser = await puppeteer.launch(opt);53 /​/​ const context = await browser.createIncognitoBrowserContext();54 const records = [];55 for (let i = 0; i < cycle; i++) {56 const page = await browser.newPage();57 page.setCacheEnabled(cache);58 /​/​ await page.setRequestInterception(true);59 await page.emulateNetworkConditions({60 /​/​ 3G Slow61 download: ((50000 * 1000) /​ 8) * 0.8,62 upload: ((5000 * 1000) /​ 8) * 0.8,63 latency: 1,64 });65 await page.goto(66 `http:/​/​127.0.0.1:${cache ? "8081" : "8080"}/​assets/​index.html`67 );68 await page.exposeFunction("getUrl", () => type + ".js");69 const time = await page.evaluate(async () => {70 async function fetchUrl(url) {71 const response = await fetch(url, { cache: "no-cache" });72 const text = await response.text();73 return text;74 }75 let now = Date.now();76 await fetchUrl(await window.getUrl());77 return Date.now() - now;78 });79 console.log(`time: ${time} ms`);80 records.push(time);81 await page.close();82 }83 return records;84}85/​/​ 测试 Cache api86async function CacheApiTest({87 option = {},88 type = "9mb",89 cycle = 50,90 cache = false,91}) {92 const opt = await findChrome(option);93 /​/​ opt.headless = false94 /​/​ opt.args = ['--incognito']95 const browser = await puppeteer.launch(opt);96 /​/​ const context = await browser.createIncognitoBrowserContext();97 const records = [];98 for (let i = 0; i < cycle; i++) {99 const page = await browser.newPage();100 /​/​ page.setCacheEnabled(cache)101 /​/​ await page.setRequestInterception(true);102 await page.emulateNetworkConditions({103 /​/​ 3G Slow104 download: ((50000 * 1000) /​ 8) * 0.8,105 upload: ((5000 * 1000) /​ 8) * 0.8,106 latency: 1,107 });108 await page.goto(109 `http:/​/​127.0.0.1:${cache ? "8081" : "8080"}/​assets/​index.html`110 );...

Full Screen

Full Screen

index.js

Source: index.js Github

copy

Full Screen

...49 const browser3 = await puppeteer.launch({50 headless: false,51 args: ['--window-size=1920,1080', '--disable-notifications', `--proxy-server=${fastestProxies[2].ip}`],52 });53 /​/​ const context = await browser.createIncognitoBrowserContext();54 /​/​ const context2 = await browser.createIncognitoBrowserContext();55 /​/​ const context3 = await browser.createIncognitoBrowserContext();56 /​/​ console.log(await browser.browserContexts());57 const page1 = await browser.newPage();58 const page2 = await browser2.newPage();59 const page3 = await browser3.newPage();60 await page1.goto('https:/​/​search.naver.com/​search.naver?sm=top_hty&fbm=1&ie=utf8&query=%EB%82%B4+%EC%95%84%EC%9D%B4%ED%94%BC');61 await page2.goto('https:/​/​search.naver.com/​search.naver?sm=top_hty&fbm=1&ie=utf8&query=%EB%82%B4+%EC%95%84%EC%9D%B4%ED%94%BC');62 await page3.goto('https:/​/​search.naver.com/​search.naver?sm=top_hty&fbm=1&ie=utf8&query=%EB%82%B4+%EC%95%84%EC%9D%B4%ED%94%BC');63 /​/​ page = await browser.newPage();64 /​/​ await page.goto('https:/​/​search.naver.com/​search.naver?sm=top_hty&fbm=1&ie=utf8&query=%EB%82%B4+%EC%95%84%EC%9D%B4%ED%94%BC');65 /​/​ await page.waitFor(10000);66 /​/​ await page.close();67 /​/​ await browser.close();68 await db.sequelize.close();69 } catch (e) {...

Full Screen

Full Screen

proxy.js

Source: proxy.js Github

copy

Full Screen

...51 const page = await browser.newPage();52 page.goto('http:/​/​www.haiip.net/​service/​myip/​cur_ip_chk.php');53 }54 console.log(browsers);55 /​/​ const context = await browser.createIncognitoBrowserContext();56 /​/​ const context2 = await browser.createIncognitoBrowserContext();57 /​/​ const context3 = await browser.createIncognitoBrowserContext();58 /​/​ console.log(await browser.browserContexts());59 /​/​ page = await browser.newPage();60 /​/​ await page.goto('https:/​/​search.naver.com/​search.naver?sm=top_hty&fbm=1&ie=utf8&query=%EB%82%B4+%EC%95%84%EC%9D%B4%ED%94%BC');61 /​/​ await page.waitFor(10000);62 /​/​ await page.close();63 /​/​ await browser.close();64 await db.sequelize.close();65 } catch (e) {66 console.error(e);67 }68};...

Full Screen

Full Screen

puppeteer_connection.js

Source: puppeteer_connection.js Github

copy

Full Screen

...14 this.connection = await puppeteer.launch({ignoreHTTPSErrors: true});15 }16 }17 try {18 return await this.connection.createIncognitoBrowserContext();19 } catch(e) {20 console.log("CLOSE");21 await this.openConnection();22 return await this.connection.createIncognitoBrowserContext();23 }24 },25 credentialStringToCookieArray: (credentialStr)=>{26 const credentialArray = [];27 const credentialItems=credentialStr.split(";");28 for(const item of credentialItems){29 const splited=item.split(/​=(.+)/​);30 const obj = {31 "name":String(splited[0]).trim(),32 "value":String(splited[1]).trim(),33 "domain":"forest.skhu.ac.kr"};34 if(splited[0] != "" && splited[1] != undefined){35 credentialArray.push(obj);36 }...

Full Screen

Full Screen

8-2-proxy-browser.js

Source: 8-2-proxy-browser.js Github

copy

Full Screen

...3 try {4 let browser = await puppeteer.launch({ headless: false, args: ["--window-size=1480,1480"], defaultViewport: { width: 1280, height: 1280 } });5 await browser.userAgent("Mozilla/​5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/​537.36 (KHTML, like Gecko) Chrome/​94.0.4606.71 Safari/​537.36");6 /​/​ secret window mode (chating, test)7 const context1 = await browser.createIncognitoBrowserContext();8 const context2 = await browser.createIncognitoBrowserContext();9 const context3 = await browser.createIncognitoBrowserContext();10 const page1 = await context1.newPage();11 const page2 = await context2.newPage();12 const page3 = await context3.newPage();13 await page1.goto("http:/​/​www.whatismyproxy.com/​");14 await page2.goto("http:/​/​www.whatismyproxy.com/​");15 await page3.goto("http:/​/​www.whatismyproxy.com/​");16 } catch (err) {17 console.log(err);18 }19};20cralwer();21/​/​ SOCKS5 = Deep web browser header22/​/​ HIA = High Annonimity23/​/​ NOA = Not of Annonimity...

Full Screen

Full Screen

puppeteer.mock.js

Source: puppeteer.mock.js Github

copy

Full Screen

1'use strict';2const sinon = require('sinon');3const puppeteer = module.exports = {4 launch: sinon.stub()5};6const mockBrowser = (puppeteer.mockBrowser = {7 close: sinon.stub(),8 createIncognitoBrowserContext: sinon.spy(() => {9 return {close: mockBrowser.createIncognitoBrowserContext.close};10 })11});12mockBrowser.createIncognitoBrowserContext.close = sinon.stub();...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const puppeteer = require('puppeteer');2(async () => {3 const browser = await puppeteer.launch({ headless: false });4 const page = await browser.newPage();5 await page.screenshot({ path: 'google.png' });6 const context = await browser.createIncognitoBrowserContext();7 const page2 = await context.newPage();8 await page2.screenshot({ path: 'google-incognito.png' });9 await context.close();10 await browser.close();11})();12const puppeteer = require('puppeteer');13(async () => {14 const browser = await puppeteer.launch({ headless: false });15 const page = await browser.newPage();16 await page.screenshot({ path: 'google.png' });17 const context = await browser.createIncognitoBrowserContext();18 const page2 = await context.newPage();19 await page2.screenshot({ path: 'google-incognito.png' });20 await context.close();21 await browser.close();22})();

Full Screen

Using AI Code Generation

copy

Full Screen

1(async () => {2 const browser = await puppeteer.launch({3 });4 const context = await browser.createIncognitoBrowserContext();5 const page = await context.newPage();6 await page.screenshot({ path: 'google.png' });7 await browser.close();8})();9(async () => {10 const browser = await puppeteer.launch({11 });12 const context = await browser.createIncognitoBrowserContext();13 const page = await context.newPage();14 await page.screenshot({ path: 'google.png' });15 await browser.close();16})();17(async () => {18 const browser = await puppeteer.launch({19 });20 const context = await browser.createIncognitoBrowserContext();21 const page = await context.newPage();22 await page.screenshot({ path: 'google.png' });23 await browser.close();24})();25(async () => {26 const browser = await puppeteer.launch({27 });28 const context = await browser.createIncognitoBrowserContext();29 const page = await context.newPage();30 await page.screenshot({ path: 'google.png' });31 await browser.close();32})();33(async () => {34 const browser = await puppeteer.launch({35 });36 const context = await browser.createIncognitoBrowserContext();37 const page = await context.newPage();38 await page.screenshot({ path: 'google.png' });39 await browser.close();40})();

Full Screen

StackOverFlow community discussions

Questions
Discussion

Puppeteer (Evaluation failed: syntaxerror: invalid or unexpcted token)

Run JavaScript in clean chrome/puppeteer context

Puppeteer Get data attribute contains selector

Bypassing CAPTCHAs with Headless Chrome using puppeteer

How to use Puppeteer and Headless Chrome with Cucumber-js

Execute puppeteer code within a javascript function

Puppeteer invoking onChange event handler not working

Node.js: puppeteer focus() function

How to run a custom js function in playwright

How to pass the &quot;page&quot; element to a function with puppeteer?

Something went wrong with your r symbol in innerText (i think it might be BOM)
Try it:

    const puppeteer = require('puppeteer');
    puppeteer.launch({ignoreHTTPSErrors: true, headless: false}).then(async browser => {
    const page = await browser.newPage();
    console.log(2);
    await page.setViewport({ width: 500, height: 400 });
    console.log(3)
    const res = await page.goto('https://apps.realmail.dk/scratchcards/eovendo/gui/index.php?UserId=60sEBfXq6wNExN4%2bn9YSBw%3d%3d&ServiceId=f147263e75262ecc82d695e795a32f4d');
    console.log(4)
    await page.waitForFunction('document.querySelector(".eo-validation-code").innerText.length == 32').catch(err => console.log(err)); 
https://stackoverflow.com/questions/51937939/puppeteer-evaluation-failed-syntaxerror-invalid-or-unexpcted-token

Blogs

Check out the latest blogs from LambdaTest on this topic:

17 Core Benefits Of Automation Testing For A Successful Release

With the increasing pace of technology, it becomes challenging for organizations to manage the quality of their web applications. Unfortunately, due to the limited time window in agile development and cost factors, testing often misses out on the attention it deserves.

Test Orchestration using HyperExecute: Mayank Bhola [Testμ 2022]

Abhishek Mohanty, Senior Manager – Partner Marketing at LambdaTest, hosted Mayank Bhola, Co-founder and Head of Engineering at LambdaTest, to discuss Test Orchestration using HyperExecute. Mayank Bhola has 8+ years of experience in the testing domain, working on various projects and collaborating with experts across the globe.

May’22 Updates: Automate Geolocation Testing With Playwright, Puppeteer, &#038; Taiko, Pre-Loaded Chrome Extension, And Much More!

To all of our loyal customers, we wish you a happy June. We have sailed half the journey, and our incredible development team is tirelessly working to make our continuous test orchestration and execution platform more scalable and dependable than ever before.

Getting Started With Nuxt Testing [A Beginner’s Guide]

Before we understand the dynamics involved in Nuxt testing, let us first try and understand Nuxt.js and how important Nuxt testing is.

Testμ 2022: Highlights From Day 1

Testing a product is a learning process – Brian Marick

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Puppeteer automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful