mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
chore: extract BrowserContext to its own file (#9133)
This commit is contained in:
parent
7aaa5f8de5
commit
a19b270018
@ -21,6 +21,7 @@ import {Protocol} from 'devtools-protocol';
|
|||||||
import {EventEmitter} from '../common/EventEmitter.js';
|
import {EventEmitter} from '../common/EventEmitter.js';
|
||||||
import type {Page} from './Page.js'; // TODO: move to ./api
|
import type {Page} from './Page.js'; // TODO: move to ./api
|
||||||
import type {Target} from '../common/Target.js'; // TODO: move to ./api
|
import type {Target} from '../common/Target.js'; // TODO: move to ./api
|
||||||
|
import type {BrowserContext} from './BrowserContext.js';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BrowserContext options.
|
* BrowserContext options.
|
||||||
@ -466,163 +467,3 @@ export const enum BrowserContextEmittedEvents {
|
|||||||
*/
|
*/
|
||||||
TargetDestroyed = 'targetdestroyed',
|
TargetDestroyed = 'targetdestroyed',
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* BrowserContexts provide a way to operate multiple independent browser
|
|
||||||
* sessions. When a browser is launched, it has a single BrowserContext used by
|
|
||||||
* default. The method {@link Browser.newPage | Browser.newPage} creates a page
|
|
||||||
* in the default browser context.
|
|
||||||
*
|
|
||||||
* @remarks
|
|
||||||
*
|
|
||||||
* The Browser class extends from Puppeteer's {@link EventEmitter} class and
|
|
||||||
* will emit various events which are documented in the
|
|
||||||
* {@link BrowserContextEmittedEvents} enum.
|
|
||||||
*
|
|
||||||
* If a page opens another page, e.g. with a `window.open` call, the popup will
|
|
||||||
* belong to the parent page's browser context.
|
|
||||||
*
|
|
||||||
* Puppeteer allows creation of "incognito" browser contexts with
|
|
||||||
* {@link Browser.createIncognitoBrowserContext | Browser.createIncognitoBrowserContext}
|
|
||||||
* method. "Incognito" browser contexts don't write any browsing data to disk.
|
|
||||||
*
|
|
||||||
* @example
|
|
||||||
*
|
|
||||||
* ```ts
|
|
||||||
* // Create a new incognito browser context
|
|
||||||
* const context = await browser.createIncognitoBrowserContext();
|
|
||||||
* // Create a new page inside context.
|
|
||||||
* const page = await context.newPage();
|
|
||||||
* // ... do stuff with page ...
|
|
||||||
* await page.goto('https://example.com');
|
|
||||||
* // Dispose context once it's no longer needed.
|
|
||||||
* await context.close();
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
export class BrowserContext extends EventEmitter {
|
|
||||||
/**
|
|
||||||
* @internal
|
|
||||||
*/
|
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An array of all active targets inside the browser context.
|
|
||||||
*/
|
|
||||||
targets(): Target[] {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This searches for a target in this specific browser context.
|
|
||||||
*
|
|
||||||
* @example
|
|
||||||
* An example of finding a target for a page opened via `window.open`:
|
|
||||||
*
|
|
||||||
* ```ts
|
|
||||||
* await page.evaluate(() => window.open('https://www.example.com/'));
|
|
||||||
* const newWindowTarget = await browserContext.waitForTarget(
|
|
||||||
* target => target.url() === 'https://www.example.com/'
|
|
||||||
* );
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* @param predicate - A function to be run for every target
|
|
||||||
* @param options - An object of options. Accepts a timout,
|
|
||||||
* which is the maximum wait time in milliseconds.
|
|
||||||
* Pass `0` to disable the timeout. Defaults to 30 seconds.
|
|
||||||
* @returns Promise which resolves to the first target found
|
|
||||||
* that matches the `predicate` function.
|
|
||||||
*/
|
|
||||||
waitForTarget(
|
|
||||||
predicate: (x: Target) => boolean | Promise<boolean>,
|
|
||||||
options?: {timeout?: number}
|
|
||||||
): Promise<Target>;
|
|
||||||
waitForTarget(): Promise<Target> {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An array of all pages inside the browser context.
|
|
||||||
*
|
|
||||||
* @returns Promise which resolves to an array of all open pages.
|
|
||||||
* Non visible pages, such as `"background_page"`, will not be listed here.
|
|
||||||
* You can find them using {@link Target.page | the target page}.
|
|
||||||
*/
|
|
||||||
pages(): Promise<Page[]> {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether BrowserContext is incognito.
|
|
||||||
* The default browser context is the only non-incognito browser context.
|
|
||||||
*
|
|
||||||
* @remarks
|
|
||||||
* The default browser context cannot be closed.
|
|
||||||
*/
|
|
||||||
isIncognito(): boolean {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @example
|
|
||||||
*
|
|
||||||
* ```ts
|
|
||||||
* const context = browser.defaultBrowserContext();
|
|
||||||
* await context.overridePermissions('https://html5demos.com', [
|
|
||||||
* 'geolocation',
|
|
||||||
* ]);
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* @param origin - The origin to grant permissions to, e.g. "https://example.com".
|
|
||||||
* @param permissions - An array of permissions to grant.
|
|
||||||
* All permissions that are not listed here will be automatically denied.
|
|
||||||
*/
|
|
||||||
overridePermissions(origin: string, permissions: Permission[]): Promise<void>;
|
|
||||||
overridePermissions(): Promise<void> {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clears all permission overrides for the browser context.
|
|
||||||
*
|
|
||||||
* @example
|
|
||||||
*
|
|
||||||
* ```ts
|
|
||||||
* const context = browser.defaultBrowserContext();
|
|
||||||
* context.overridePermissions('https://example.com', ['clipboard-read']);
|
|
||||||
* // do stuff ..
|
|
||||||
* context.clearPermissionOverrides();
|
|
||||||
* ```
|
|
||||||
*/
|
|
||||||
clearPermissionOverrides(): Promise<void> {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new page in the browser context.
|
|
||||||
*/
|
|
||||||
newPage(): Promise<Page> {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The browser this browser context belongs to.
|
|
||||||
*/
|
|
||||||
browser(): Browser {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Closes the browser context. All the targets that belong to the browser context
|
|
||||||
* will be closed.
|
|
||||||
*
|
|
||||||
* @remarks
|
|
||||||
* Only incognito browser contexts can be closed.
|
|
||||||
*/
|
|
||||||
close(): Promise<void> {
|
|
||||||
throw new Error('Not implemented');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
181
packages/puppeteer-core/src/api/BrowserContext.ts
Normal file
181
packages/puppeteer-core/src/api/BrowserContext.ts
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2017 Google Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {EventEmitter} from '../common/EventEmitter.js';
|
||||||
|
import {Page} from './Page.js';
|
||||||
|
import {Target} from '../common/Target.js';
|
||||||
|
import type {Permission, Browser} from './Browser.js';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BrowserContexts provide a way to operate multiple independent browser
|
||||||
|
* sessions. When a browser is launched, it has a single BrowserContext used by
|
||||||
|
* default. The method {@link Browser.newPage | Browser.newPage} creates a page
|
||||||
|
* in the default browser context.
|
||||||
|
*
|
||||||
|
* @remarks
|
||||||
|
*
|
||||||
|
* The Browser class extends from Puppeteer's {@link EventEmitter} class and
|
||||||
|
* will emit various events which are documented in the
|
||||||
|
* {@link BrowserContextEmittedEvents} enum.
|
||||||
|
*
|
||||||
|
* If a page opens another page, e.g. with a `window.open` call, the popup will
|
||||||
|
* belong to the parent page's browser context.
|
||||||
|
*
|
||||||
|
* Puppeteer allows creation of "incognito" browser contexts with
|
||||||
|
* {@link Browser.createIncognitoBrowserContext | Browser.createIncognitoBrowserContext}
|
||||||
|
* method. "Incognito" browser contexts don't write any browsing data to disk.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* // Create a new incognito browser context
|
||||||
|
* const context = await browser.createIncognitoBrowserContext();
|
||||||
|
* // Create a new page inside context.
|
||||||
|
* const page = await context.newPage();
|
||||||
|
* // ... do stuff with page ...
|
||||||
|
* await page.goto('https://example.com');
|
||||||
|
* // Dispose context once it's no longer needed.
|
||||||
|
* await context.close();
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
export class BrowserContext extends EventEmitter {
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An array of all active targets inside the browser context.
|
||||||
|
*/
|
||||||
|
targets(): Target[] {
|
||||||
|
throw new Error('Not implemented');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This searches for a target in this specific browser context.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* An example of finding a target for a page opened via `window.open`:
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* await page.evaluate(() => window.open('https://www.example.com/'));
|
||||||
|
* const newWindowTarget = await browserContext.waitForTarget(
|
||||||
|
* target => target.url() === 'https://www.example.com/'
|
||||||
|
* );
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param predicate - A function to be run for every target
|
||||||
|
* @param options - An object of options. Accepts a timout,
|
||||||
|
* which is the maximum wait time in milliseconds.
|
||||||
|
* Pass `0` to disable the timeout. Defaults to 30 seconds.
|
||||||
|
* @returns Promise which resolves to the first target found
|
||||||
|
* that matches the `predicate` function.
|
||||||
|
*/
|
||||||
|
waitForTarget(
|
||||||
|
predicate: (x: Target) => boolean | Promise<boolean>,
|
||||||
|
options?: {timeout?: number}
|
||||||
|
): Promise<Target>;
|
||||||
|
waitForTarget(): Promise<Target> {
|
||||||
|
throw new Error('Not implemented');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An array of all pages inside the browser context.
|
||||||
|
*
|
||||||
|
* @returns Promise which resolves to an array of all open pages.
|
||||||
|
* Non visible pages, such as `"background_page"`, will not be listed here.
|
||||||
|
* You can find them using {@link Target.page | the target page}.
|
||||||
|
*/
|
||||||
|
pages(): Promise<Page[]> {
|
||||||
|
throw new Error('Not implemented');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether BrowserContext is incognito.
|
||||||
|
* The default browser context is the only non-incognito browser context.
|
||||||
|
*
|
||||||
|
* @remarks
|
||||||
|
* The default browser context cannot be closed.
|
||||||
|
*/
|
||||||
|
isIncognito(): boolean {
|
||||||
|
throw new Error('Not implemented');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @example
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* const context = browser.defaultBrowserContext();
|
||||||
|
* await context.overridePermissions('https://html5demos.com', [
|
||||||
|
* 'geolocation',
|
||||||
|
* ]);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param origin - The origin to grant permissions to, e.g. "https://example.com".
|
||||||
|
* @param permissions - An array of permissions to grant.
|
||||||
|
* All permissions that are not listed here will be automatically denied.
|
||||||
|
*/
|
||||||
|
overridePermissions(origin: string, permissions: Permission[]): Promise<void>;
|
||||||
|
overridePermissions(): Promise<void> {
|
||||||
|
throw new Error('Not implemented');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears all permission overrides for the browser context.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* const context = browser.defaultBrowserContext();
|
||||||
|
* context.overridePermissions('https://example.com', ['clipboard-read']);
|
||||||
|
* // do stuff ..
|
||||||
|
* context.clearPermissionOverrides();
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
clearPermissionOverrides(): Promise<void> {
|
||||||
|
throw new Error('Not implemented');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new page in the browser context.
|
||||||
|
*/
|
||||||
|
newPage(): Promise<Page> {
|
||||||
|
throw new Error('Not implemented');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The browser this browser context belongs to.
|
||||||
|
*/
|
||||||
|
browser(): Browser {
|
||||||
|
throw new Error('Not implemented');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Closes the browser context. All the targets that belong to the browser context
|
||||||
|
* will be closed.
|
||||||
|
*
|
||||||
|
* @remarks
|
||||||
|
* Only incognito browser contexts can be closed.
|
||||||
|
*/
|
||||||
|
close(): Promise<void> {
|
||||||
|
throw new Error('Not implemented');
|
||||||
|
}
|
||||||
|
}
|
@ -48,7 +48,8 @@ import type {Target} from '../common/Target.js';
|
|||||||
import type {Tracing} from '../common/Tracing.js';
|
import type {Tracing} from '../common/Tracing.js';
|
||||||
import type {EvaluateFunc, HandleFor, NodeFor} from '../common/types.js';
|
import type {EvaluateFunc, HandleFor, NodeFor} from '../common/types.js';
|
||||||
import type {WebWorker} from '../common/WebWorker.js';
|
import type {WebWorker} from '../common/WebWorker.js';
|
||||||
import type {Browser, BrowserContext} from './Browser.js';
|
import type {Browser} from './Browser.js';
|
||||||
|
import type {BrowserContext} from './BrowserContext.js';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @public
|
* @public
|
||||||
|
@ -28,7 +28,6 @@ import {ChromeTargetManager} from './ChromeTargetManager.js';
|
|||||||
import {FirefoxTargetManager} from './FirefoxTargetManager.js';
|
import {FirefoxTargetManager} from './FirefoxTargetManager.js';
|
||||||
import {
|
import {
|
||||||
Browser as BrowserBase,
|
Browser as BrowserBase,
|
||||||
BrowserContext,
|
|
||||||
BrowserCloseCallback,
|
BrowserCloseCallback,
|
||||||
TargetFilterCallback,
|
TargetFilterCallback,
|
||||||
IsPageTargetCallback,
|
IsPageTargetCallback,
|
||||||
@ -39,6 +38,7 @@ import {
|
|||||||
WaitForTargetOptions,
|
WaitForTargetOptions,
|
||||||
Permission,
|
Permission,
|
||||||
} from '../api/Browser.js';
|
} from '../api/Browser.js';
|
||||||
|
import {BrowserContext} from '../api/BrowserContext.js';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
|
@ -16,7 +16,8 @@
|
|||||||
|
|
||||||
import {Protocol} from 'devtools-protocol';
|
import {Protocol} from 'devtools-protocol';
|
||||||
import type {Readable} from 'stream';
|
import type {Readable} from 'stream';
|
||||||
import type {Browser, BrowserContext} from '../api/Browser.js';
|
import type {Browser} from '../api/Browser.js';
|
||||||
|
import type {BrowserContext} from '../api/BrowserContext.js';
|
||||||
import {
|
import {
|
||||||
GeolocationOptions,
|
GeolocationOptions,
|
||||||
MediaFeature,
|
MediaFeature,
|
||||||
|
@ -17,11 +17,8 @@
|
|||||||
import {Page, PageEmittedEvents} from '../api/Page.js';
|
import {Page, PageEmittedEvents} from '../api/Page.js';
|
||||||
import {WebWorker} from './WebWorker.js';
|
import {WebWorker} from './WebWorker.js';
|
||||||
import {CDPSession} from './Connection.js';
|
import {CDPSession} from './Connection.js';
|
||||||
import type {
|
import type {Browser, IsPageTargetCallback} from '../api/Browser.js';
|
||||||
Browser,
|
import type {BrowserContext} from '../api/BrowserContext.js';
|
||||||
BrowserContext,
|
|
||||||
IsPageTargetCallback,
|
|
||||||
} from '../api/Browser.js';
|
|
||||||
import {Viewport} from './PuppeteerViewport.js';
|
import {Viewport} from './PuppeteerViewport.js';
|
||||||
import {Protocol} from 'devtools-protocol';
|
import {Protocol} from 'devtools-protocol';
|
||||||
import {TaskQueue} from './TaskQueue.js';
|
import {TaskQueue} from './TaskQueue.js';
|
||||||
|
@ -18,8 +18,8 @@ import {
|
|||||||
Browser as BrowserBase,
|
Browser as BrowserBase,
|
||||||
BrowserCloseCallback,
|
BrowserCloseCallback,
|
||||||
BrowserContextOptions,
|
BrowserContextOptions,
|
||||||
BrowserContext as BrowserContextBase,
|
|
||||||
} from '../../api/Browser.js';
|
} from '../../api/Browser.js';
|
||||||
|
import {BrowserContext as BrowserContextBase} from '../../api/BrowserContext.js';
|
||||||
import {Connection} from './Connection.js';
|
import {Connection} from './Connection.js';
|
||||||
import {ChildProcess} from 'child_process';
|
import {ChildProcess} from 'child_process';
|
||||||
import {BrowserContext} from './BrowserContext.js';
|
import {BrowserContext} from './BrowserContext.js';
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {BrowserContext as BrowserContextBase} from '../../api/Browser.js';
|
import {BrowserContext as BrowserContextBase} from '../../api/BrowserContext.js';
|
||||||
import {Page as PageBase} from '../../api/Page.js';
|
import {Page as PageBase} from '../../api/Page.js';
|
||||||
import {Connection} from './Connection.js';
|
import {Connection} from './Connection.js';
|
||||||
import {Page} from './Page.js';
|
import {Page} from './Page.js';
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// AUTOGENERATED - Use `npm run generate:sources` to regenerate.
|
// AUTOGENERATED - Use `npm run generate:sources` to regenerate.
|
||||||
|
|
||||||
export * from './api/Browser.js';
|
export * from './api/Browser.js';
|
||||||
|
export * from './api/BrowserContext.js';
|
||||||
export * from './api/Page.js';
|
export * from './api/Page.js';
|
||||||
export * from './common/Accessibility.js';
|
export * from './common/Accessibility.js';
|
||||||
export * from './common/AriaQueryHandler.js';
|
export * from './common/AriaQueryHandler.js';
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// AUTOGENERATED - Use `npm run generate:sources` to regenerate.
|
// AUTOGENERATED - Use `npm run generate:sources` to regenerate.
|
||||||
|
|
||||||
export * from 'puppeteer-core/internal/api/Browser.js';
|
export * from 'puppeteer-core/internal/api/Browser.js';
|
||||||
|
export * from 'puppeteer-core/internal/api/BrowserContext.js';
|
||||||
export * from 'puppeteer-core/internal/api/Page.js';
|
export * from 'puppeteer-core/internal/api/Page.js';
|
||||||
export * from 'puppeteer-core/internal/common/Accessibility.js';
|
export * from 'puppeteer-core/internal/common/Accessibility.js';
|
||||||
export * from 'puppeteer-core/internal/common/AriaQueryHandler.js';
|
export * from 'puppeteer-core/internal/common/AriaQueryHandler.js';
|
||||||
|
@ -16,7 +16,8 @@
|
|||||||
|
|
||||||
import expect from 'expect';
|
import expect from 'expect';
|
||||||
import {TLSSocket} from 'tls';
|
import {TLSSocket} from 'tls';
|
||||||
import {Browser, BrowserContext} from 'puppeteer-core/internal/api/Browser.js';
|
import {Browser} from 'puppeteer-core/internal/api/Browser.js';
|
||||||
|
import {BrowserContext} from 'puppeteer-core/internal/api/BrowserContext.js';
|
||||||
import {Page} from 'puppeteer-core/internal/api/Page.js';
|
import {Page} from 'puppeteer-core/internal/api/Page.js';
|
||||||
import {HTTPResponse} from 'puppeteer-core/internal/common/HTTPResponse.js';
|
import {HTTPResponse} from 'puppeteer-core/internal/common/HTTPResponse.js';
|
||||||
import {getTestState} from './mocha-utils.js';
|
import {getTestState} from './mocha-utils.js';
|
||||||
|
@ -20,7 +20,8 @@ import * as fs from 'fs';
|
|||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import rimraf from 'rimraf';
|
import rimraf from 'rimraf';
|
||||||
import sinon from 'sinon';
|
import sinon from 'sinon';
|
||||||
import {Browser, BrowserContext} from 'puppeteer-core/internal/api/Browser.js';
|
import {Browser} from 'puppeteer-core/internal/api/Browser.js';
|
||||||
|
import {BrowserContext} from 'puppeteer-core/internal/api/BrowserContext.js';
|
||||||
import {Page} from 'puppeteer-core/internal/api/Page.js';
|
import {Page} from 'puppeteer-core/internal/api/Page.js';
|
||||||
import {isErrorLike} from 'puppeteer-core/internal/util/ErrorLike.js';
|
import {isErrorLike} from 'puppeteer-core/internal/util/ErrorLike.js';
|
||||||
import {
|
import {
|
||||||
|
@ -17,7 +17,8 @@
|
|||||||
import utils from './utils.js';
|
import utils from './utils.js';
|
||||||
import expect from 'expect';
|
import expect from 'expect';
|
||||||
import {getTestState} from './mocha-utils.js';
|
import {getTestState} from './mocha-utils.js';
|
||||||
import {Browser, BrowserContext} from 'puppeteer-core/internal/api/Browser.js';
|
import {Browser} from 'puppeteer-core/internal/api/Browser.js';
|
||||||
|
import {BrowserContext} from 'puppeteer-core/internal/api/BrowserContext.js';
|
||||||
import {Page} from 'puppeteer-core/internal/api/Page.js';
|
import {Page} from 'puppeteer-core/internal/api/Page.js';
|
||||||
|
|
||||||
describe('OOPIF', function () {
|
describe('OOPIF', function () {
|
||||||
|
Loading…
Reference in New Issue
Block a user