connect method
This method attaches Puppeteer to an existing Chromium instance.
Parameters:
browserWSEndpoint
: a browser websocket endpoint to connect to.browserURL
: a browser url to connect to, in formathttp://${host}:${port}
. Use interchangeably withbrowserWSEndpoint
to let Puppeteer fetch it from metadata endpoint.ignoreHTTPSErrors
: Whether to ignore HTTPS errors during navigation. Defaults tofalse
.defaultViewport
: Sets a consistent viewport for each page. Defaults to an 1280x1024 viewport.null
disables the default viewport.slowMo
: Slows down Puppeteer operations by the specified amount of milliseconds. Useful so that you can see what is going on.
Implementation
Future<Browser> connect(
{String? browserWsEndpoint,
String? browserUrl,
DeviceViewport? defaultViewport = LaunchOptions.viewportNotSpecified,
bool? ignoreHttpsErrors,
Duration? slowMo,
List<Plugin>? plugins}) async {
assert(
(browserWsEndpoint != null || browserUrl != null) &&
browserWsEndpoint != browserUrl,
'Exactly one of browserWSEndpoint, browserURL or transport must be passed to puppeteer.connect');
var allPlugins = this.plugins.toList();
if (plugins != null) {
allPlugins.addAll(plugins);
}
var connectOptions =
LaunchOptions(args: null, defaultViewport: defaultViewport);
for (var plugin in allPlugins) {
connectOptions = await plugin.willLaunchBrowser(connectOptions);
}
Connection? connection;
if (browserWsEndpoint != null) {
connection = await Connection.create(browserWsEndpoint, delay: slowMo);
} else if (browserUrl != null) {
var connectionURL = await _wsEndpoint(browserUrl);
connection = await Connection.create(connectionURL, delay: slowMo);
}
var browserContextIds = await connection!.targetApi.getBrowserContexts();
var browser = await createBrowser(null, connection,
browserContextIds: browserContextIds,
ignoreHttpsErrors: ignoreHttpsErrors,
defaultViewport: connectOptions.computedDefaultViewport,
plugins: allPlugins, closeCallback: () async {
try {
await connection!.send('Browser.close');
} catch (e) {
// ignore
}
});
await attachBrowser(browser);
await browser.pages;
return browser;
}