connect method

Future<Browser> connect({
  1. String? browserWsEndpoint,
  2. String? browserUrl,
  3. DeviceViewport? defaultViewport = LaunchOptions.viewportNotSpecified,
  4. bool? ignoreHttpsErrors,
  5. Duration? slowMo,
  6. List<Plugin>? plugins,
})

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 format http://${host}:${port}. Use interchangeably with browserWSEndpoint to let Puppeteer fetch it from metadata endpoint.
  • ignoreHTTPSErrors: Whether to ignore HTTPS errors during navigation. Defaults to false.
  • 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;
}