fix: return valid browser from context.browser() when connect over CDP (#7155)
This commit is contained in:
parent
312fd3ed4e
commit
e5d0a535a8
|
|
@ -41,9 +41,10 @@ export class BrowserTypeDispatcher extends Dispatcher<BrowserType, channels.Brow
|
|||
|
||||
async connectOverCDP(params: channels.BrowserTypeConnectOverCDPParams, metadata: CallMetadata): Promise<channels.BrowserTypeConnectOverCDPResult> {
|
||||
const browser = await this._object.connectOverCDP(metadata, params.endpointURL, params, params.timeout);
|
||||
const browserDispatcher = new BrowserDispatcher(this._scope, browser);
|
||||
return {
|
||||
browser: new BrowserDispatcher(this._scope, browser),
|
||||
defaultContext: browser._defaultContext ? new BrowserContextDispatcher(this._scope, browser._defaultContext) : undefined,
|
||||
browser: browserDispatcher,
|
||||
defaultContext: browser._defaultContext ? new BrowserContextDispatcher(browserDispatcher._scope, browser._defaultContext) : undefined,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ playwrightTest('should connect over a ws endpoint', async ({browserType, browser
|
|||
const cdpBrowser2 = await browserType.connectOverCDP({
|
||||
wsEndpoint: JSON.parse(json).webSocketDebuggerUrl,
|
||||
});
|
||||
const contexts2 = cdpBrowser.contexts();
|
||||
const contexts2 = cdpBrowser2.contexts();
|
||||
expect(contexts2.length).toBe(1);
|
||||
await cdpBrowser2.close();
|
||||
} finally {
|
||||
|
|
@ -285,3 +285,26 @@ playwrightTest('should report all pages in an existing browser', async ({ browse
|
|||
await browserServer.close();
|
||||
}
|
||||
});
|
||||
|
||||
playwrightTest('should return valid browser from context.browser()', async ({ browserType, browserOptions }, testInfo) => {
|
||||
const port = 9339 + testInfo.workerIndex;
|
||||
const browserServer = await browserType.launch({
|
||||
...browserOptions,
|
||||
args: ['--remote-debugging-port=' + port]
|
||||
});
|
||||
try {
|
||||
const cdpBrowser = await browserType.connectOverCDP({
|
||||
endpointURL: `http://localhost:${port}/`,
|
||||
});
|
||||
const contexts = cdpBrowser.contexts();
|
||||
expect(contexts.length).toBe(1);
|
||||
expect(contexts[0].browser()).toBe(cdpBrowser);
|
||||
|
||||
const context2 = await cdpBrowser.newContext();
|
||||
expect(context2.browser()).toBe(cdpBrowser);
|
||||
|
||||
await cdpBrowser.close();
|
||||
} finally {
|
||||
await browserServer.close();
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue