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

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