Best JavaScript code snippet using playwright-internal
TargetRegistry.js
Source:TargetRegistry.js
...371 setEmulatedMedia(mediumOverride) {372 this._linkedBrowser.browsingContext.mediumOverride = mediumOverride || '';373 }374 setColorScheme(colorScheme) {375 this.colorScheme = fromProtocolColorScheme(colorScheme);376 this.updateColorSchemeOverride();377 }378 updateColorSchemeOverride() {379 this._linkedBrowser.browsingContext.prefersColorSchemeOverride = this.colorScheme || this._browserContext.colorScheme || 'none';380 }381 async setViewportSize(viewportSize) {382 this._viewportSize = viewportSize;383 await this.updateViewportSize();384 }385 close(runBeforeUnload = false) {386 this._gBrowser.removeTab(this._tab, {387 skipPermitUnload: !runBeforeUnload,388 });389 }390 channel() {391 return this._channel;392 }393 id() {394 return this._targetId;395 }396 info() {397 return {398 targetId: this.id(),399 type: 'page',400 browserContextId: this._browserContext.browserContextId,401 openerId: this._openerId,402 };403 }404 _onNavigated(aLocation) {405 this._url = aLocation.spec;406 this._browserContext.grantPermissionsToOrigin(this._url);407 }408 async ensurePermissions() {409 await this._channel.connect('').send('ensurePermissions', {}).catch(e => void e);410 }411 async addScriptToEvaluateOnNewDocument(script) {412 await this._channel.connect('').send('addScriptToEvaluateOnNewDocument', script).catch(e => void e);413 }414 async addBinding(name, script) {415 await this._channel.connect('').send('addBinding', { name, script }).catch(e => void e);416 }417 async applyContextSetting(name, value) {418 await this._channel.connect('').send('applyContextSetting', { name, value }).catch(e => void e);419 }420 async hasFailedToOverrideTimezone() {421 return await this._channel.connect('').send('hasFailedToOverrideTimezone').catch(e => true);422 }423 async _startVideoRecording({width, height, scale, dir}) {424 // On Mac the window may not yet be visible when TargetCreated and its425 // NSWindow.windowNumber may be -1, so we wait until the window is known426 // to be initialized and visible.427 await this.windowReady();428 const file = OS.Path.join(dir, helper.generateId() + '.webm');429 if (width < 10 || width > 10000 || height < 10 || height > 10000)430 throw new Error("Invalid size");431 if (scale && (scale <= 0 || scale > 1))432 throw new Error("Unsupported scale");433 const screencast = Cc['@mozilla.org/juggler/screencast;1'].getService(Ci.nsIScreencastService);434 const docShell = this._gBrowser.ownerGlobal.docShell;435 // Exclude address bar and navigation control from the video.436 const rect = this.linkedBrowser().getBoundingClientRect();437 const devicePixelRatio = this._window.devicePixelRatio;438 const videoSessionId = screencast.startVideoRecording(docShell, file, width, height, scale || 0, devicePixelRatio * rect.top);439 this._screencastInfo = { videoSessionId, file };440 this.emit(PageTarget.Events.ScreencastStarted);441 }442 async _stopVideoRecording() {443 if (!this._screencastInfo)444 throw new Error('No video recording in progress');445 const screencastInfo = this._screencastInfo;446 this._screencastInfo = undefined;447 const screencast = Cc['@mozilla.org/juggler/screencast;1'].getService(Ci.nsIScreencastService);448 const result = new Promise(resolve =>449 Services.obs.addObserver(function onStopped(subject, topic, data) {450 if (screencastInfo.videoSessionId != data)451 return;452 Services.obs.removeObserver(onStopped, 'juggler-screencast-stopped');453 resolve();454 }, 'juggler-screencast-stopped')455 );456 screencast.stopVideoRecording(screencastInfo.videoSessionId);457 return result;458 }459 screencastInfo() {460 return this._screencastInfo;461 }462 dispose() {463 this._disposed = true;464 if (this._screencastInfo)465 this._stopVideoRecording().catch(e => dump(`stopVideoRecording failed:\n${e}\n`));466 this._browserContext.pages.delete(this);467 this._registry._browserToTarget.delete(this._linkedBrowser);468 this._registry._browserBrowsingContextToTarget.delete(this._linkedBrowser.browsingContext);469 try {470 helper.removeListeners(this._eventListeners);471 } catch (e) {472 // In some cases, removing listeners from this._linkedBrowser fails473 // because it is already half-destroyed.474 if (e)475 dump(e.message + '\n' + e.stack + '\n');476 }477 this._registry.emit(TargetRegistry.Events.TargetDestroyed, this);478 }479}480PageTarget.Events = {481 ScreencastStarted: Symbol('PageTarget.ScreencastStarted'),482 Crashed: Symbol('PageTarget.Crashed'),483 DialogOpened: Symbol('PageTarget.DialogOpened'),484 DialogClosed: Symbol('PageTarget.DialogClosed'),485};486function fromProtocolColorScheme(colorScheme) {487 if (colorScheme === 'light' || colorScheme === 'dark')488 return colorScheme;489 if (colorScheme === null || colorScheme === 'no-preference')490 return undefined;491 throw new Error('Unknown color scheme: ' + colorScheme);492}493class BrowserContext {494 constructor(registry, browserContextId, removeOnDetach) {495 this._registry = registry;496 this.browserContextId = browserContextId;497 // Default context has userContextId === 0, but we pass undefined to many APIs just in case.498 this.userContextId = 0;499 if (browserContextId !== undefined) {500 const identity = ContextualIdentityService.create(IDENTITY_NAME + browserContextId);501 this.userContextId = identity.userContextId;502 }503 this._principals = [];504 // Maps origins to the permission lists.505 this._permissions = new Map();506 this._registry._browserContextIdToBrowserContext.set(this.browserContextId, this);507 this._registry._userContextIdToBrowserContext.set(this.userContextId, this);508 this._proxy = null;509 this.removeOnDetach = removeOnDetach;510 this.extraHTTPHeaders = undefined;511 this.httpCredentials = undefined;512 this.requestInterceptionEnabled = undefined;513 this.ignoreHTTPSErrors = undefined;514 this.downloadOptions = undefined;515 this.defaultViewportSize = undefined;516 this.deviceScaleFactor = undefined;517 this.defaultUserAgent = null;518 this.touchOverride = false;519 this.colorScheme = 'none';520 this.screencastOptions = undefined;521 this.scriptsToEvaluateOnNewDocument = [];522 this.bindings = [];523 this.settings = {};524 this.pages = new Set();525 }526 setColorScheme(colorScheme) {527 this.colorScheme = fromProtocolColorScheme(colorScheme);528 for (const page of this.pages)529 page.updateColorSchemeOverride();530 }531 async destroy() {532 if (this.userContextId !== 0) {533 ContextualIdentityService.remove(this.userContextId);534 for (const page of this.pages)535 page.close();536 if (this.pages.size) {537 await new Promise(f => {538 const listener = helper.on(this._registry, TargetRegistry.Events.TargetDestroyed, () => {539 if (!this.pages.size) {540 helper.removeListeners([listener]);541 f();...
Using AI Code Generation
1const { webkit } = require('playwright');2(async () => {3 const browser = await webkit.launch();4 const context = await browser.newContext({5 });6 const page = await context.newPage();7 await page.screenshot({ path: `example.png` });8 await browser.close();9})();10const { webkit } = require('playwright');11(async () => {12 const browser = await webkit.launch();13 const context = await browser.newContext({14 });15 const page = await context.newPage();16 await page.screenshot({ path: `example.png` });17 await browser.close();18})();19const puppeteer = require('puppeteer');20(async () => {21 const browser = await puppeteer.launch();22 const page = await browser.newPage();23 await page.emulateMediaFeatures([24 { name: 'prefers-color-scheme', value: 'dark' },25 ]);26 await page.screenshot({ path: `example.png` });27 await browser.close();28})();29const puppeteer = require('puppeteer');30(async () => {31 const browser = await puppeteer.launch();32 const page = await browser.newPage();33 await page.emulateMediaFeatures([34 { name: 'prefers-color-scheme', value: 'dark' },35 ]);36 await page.screenshot({ path: `example.png` });37 await browser.close();38})();39Cypress.Commands.add('fromProtocolColorScheme', (colorScheme) => {40 cy.get('html').invoke('attr', 'data-color-mode', colorScheme);41});42describe('Test', () => {43 it('should work', () => {44 cy.fromProtocolColorScheme('dark');
Using AI Code Generation
1const { webkit } = require('playwright');2(async () => {3 const browser = await webkit.launch();4 const context = await browser.newContext({ viewport: null });5 const page = await context.newPage();6 await page.screenshot({ path: 'google.png' });7 await browser.close();8})();9const { webkit } = require('playwright');10(async () => {11 const browser = await webkit.launch();12 const context = await browser.newContext({ viewport: null });13 const page = await context.newPage();14 await page.screenshot({ path: 'google.png' });15 await browser.close();16})();17const { webkit } = require('playwright');18(async () => {19 const browser = await webkit.launch();20 const context = await browser.newContext({ viewport: null });21 const page = await context.newPage();22 await page.screenshot({ path: 'google.png' });23 await browser.close();24})();25const { webkit } = require('playwright');26(async () => {27 const browser = await webkit.launch();28 const context = await browser.newContext({ viewport: null });29 const page = await context.newPage();30 await page.screenshot({ path: 'google.png' });31 await browser.close();32})();33const { webkit } = require('playwright');34(async () => {35 const browser = await webkit.launch();36 const context = await browser.newContext({ viewport: null });37 const page = await context.newPage();38 await page.screenshot({ path: 'google.png' });39 await browser.close();40})();41const { webkit } = require('playwright');42(async () => {43 const browser = await webkit.launch();44 const context = await browser.newContext({ viewport: null });
Using AI Code Generation
1const {chromium, webkit, firefox} = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext({5 });6 const page = await context.newPage();7 await page.screenshot({ path: `chromium-dark.png` });8 await browser.close();9})();10const {chromium, webkit, firefox} = require('playwright');11(async () => {12 const browser = await webkit.launch({ headless: false });13 const context = await browser.newContext({14 });15 const page = await context.newPage();16 await page.screenshot({ path: `webkit-dark.png` });17 await browser.close();18})();19const {chromium, webkit, firefox} = require('playwright');20(async () => {21 const browser = await firefox.launch({ headless: false });22 const context = await browser.newContext({23 });24 const page = await context.newPage();25 await page.screenshot({ path: `firefox-dark.png` });26 await browser.close();27})();28const {chromium, webkit, firefox} = require('playwright');29(async () => {30 const browser = await chromium.launch({ headless: false });31 const context = await browser.newContext({32 });33 const page = await context.newPage();34 await page.screenshot({ path: `chromium-light.png` });35 await browser.close();36})();37const {chromium, webkit, firefox} = require('playwright');38(async () => {
Using AI Code Generation
1const { webkit } = require('playwright');2(async () => {3 const browser = await webkit.launch();4 const context = await browser.newContext({ viewport: null });5 const page = await context.newPage();6 await page.screenshot({ path: `screenshot.png` });7 await browser.close();8})();9const { webkit } = require('playwright');10(async () => {11 const browser = await webkit.launch();12 const context = await browser.newContext({ viewport: null });13 const page = await context.newPage();14 await page.emulateMedia({ colorScheme: 'dark' });15 await page.screenshot({ path: `screenshot.png` });16 await browser.close();17})();
Using AI Code Generation
1const { webkit } = require('playwright');2(async () => {3 const browser = await webkit.launch();4 const page = await browser.newPage();5 await page.waitForSelector('input[type="email"]');6 const colorScheme = await page.evaluate(() => {7 return window.matchMedia('(prefers-color-scheme: dark)').matches;8 });9 const input = await page.$('input[type="email"]');10 await input.fill('
Using AI Code Generation
1const {chromium} = require('playwright');2const {fromProtocolColorScheme} = require('playwright/lib/server/chromium/chromiumColorSchemeEmulation.js');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext({6 ...fromProtocolColorScheme('dark'),7 });8 const page = await context.newPage();9 await page.screenshot({ path: `example.png` });10 await browser.close();11})();12module.exports = {13 use: {14 viewport: { width: 1280, height: 720 },15 },16};17import { PlaywrightTestConfig } from '@playwright/test';18const config: PlaywrightTestConfig = {19 use: {20 viewport: { width: 1280, height: 720 },21 },22};23export default config;24module.exports = {25 use: {26 viewport: { width: 1280, height: 720 },27 },28};29import type { PlaywrightTestConfig } from '@playwright/test';30const config: PlaywrightTestConfig = {31 use: {32 viewport: { width: 1280, height: 720 },33 },34};35export default config;36import { PlaywrightTestConfig } from '@playwright/test';37const config: PlaywrightTestConfig = {38 use: {39 viewport: { width: 1280, height: 720 },
Using AI Code Generation
1const {chromium, webkit, firefox} = require('playwright');2const {fromProtocolColorScheme} = require('playwright/lib/server/protocol.js');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext({6 colorScheme: fromProtocolColorScheme('dark')7 });8 const page = await context.newPage();9 await browser.close();10})();11const {chromium, webkit, firefox} = require('playwright');12const {fromProtocolColorScheme} = require('playwright/lib/server/protocol.js');13(async () => {14 const browser = await chromium.launch();15 const context = await browser.newContext({16 colorScheme: fromProtocolColorScheme('dark')17 });18 const page = await context.newPage();19 await browser.close();20})();21const {chromium, webkit, firefox} = require('playwright');22const {fromProtocolColorScheme} = require('playwright/lib/server/protocol.js');23(async () => {24 const browser = await chromium.launch();25 const context = await browser.newContext({26 colorScheme: fromProtocolColorScheme('dark')27 });28 const page = await context.newPage();29 await browser.close();30})();31const {chromium, webkit, firefox} = require('playwright');32const {fromProtocolColorScheme} = require('playwright/lib/server/protocol.js');33(async () => {34 const browser = await chromium.launch();35 const context = await browser.newContext({36 colorScheme: fromProtocolColorScheme('dark')37 });38 const page = await context.newPage();39 await browser.close();40})();41const {chromium, webkit, firefox} = require('playwright');
Using AI Code Generation
1const {chromium} = require('playwright');2const {chromium: chromiumTest} = require('playwright-test');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 await context.fromProtocolColorScheme({colorScheme: 'dark'});7 const page = await context.newPage();8 await page.screenshot({ path: 'dark.png' });9 await context.fromProtocolColorScheme({colorScheme: 'light'});10 await page.screenshot({ path: 'light.png' });11 await browser.close();12})();13const {chromium} = require('playwright');14const {chromium: chromiumTest} = require('playwright-test');15test('should work', async ({page}) => {16 await page.context().fromProtocolColorScheme({colorScheme: 'dark'});17 await page.screenshot({ path: 'dark.png' });18 await page.context().fromProtocolColorScheme({colorScheme: 'light'});19 await page.screenshot({ path: 'light.png' });20});21 at Chromium._onMessage (C:\Users\kumar\Documents\Playwright\playwright-test\node_modules\playwright\lib\server\chromium\chromium.js:75:15)22 at processTicksAndRejections (internal/process/task_queues.js:97:5)23 at async ProgressController.run (C:\Users\kumar\Documents\Playwright\playwright-test\node_modules\playwright\lib\utils\progress.js:101:28)24 at async Chromium.launch (C:\Users\kumar\Documents\Playwright\playwright-test\node_modules\playwright\lib\server\chromium.js:86:20)
Using AI Code Generation
1const { protocolColorScheme } = require('playwright/lib/server/browserContext');2const colorScheme = protocolColorScheme('light');3console.log(colorScheme);4const colorScheme = protocolColorScheme('dark');5console.log(colorScheme);6const { test, expect } = require('@playwright/test');7test('Check color scheme', async ({ page }) => {8 const colorScheme = await page.evaluate(() => {9 return window.matchMedia('(prefers-color-scheme: dark)').matches10 : 'light';11 });12 expect(colorScheme).toBe('dark');13});
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!