public PuppeteerExtra Use(PuppeteerExtraPlugin plugin) { _plugins.Add(plugin); ResolveDependencies(plugin); plugin.OnPluginRegistered(); return(this); }
protected async Task <Browser> LaunchWithPluginAsync(PuppeteerExtraPlugin plugin, LaunchOptions options = null) { var extra = new PuppeteerExtra().Use(plugin); //DownloadChromeIfNotExists(); options ??= CreateDefaultOptions(); var browser = await extra.LaunchAsync(options); _launchedBrowsers.Add(browser); return(browser); }
protected async Task <Page> LaunchAndGetPage(PuppeteerExtraPlugin plugin = null) { Browser browser = null; if (plugin != null) { browser = await LaunchWithPluginAsync(plugin); } else { browser = await LaunchAsync(); } var page = (await browser.PagesAsync())[0]; return(page); }
private void ResolveDependencies(PuppeteerExtraPlugin plugin) { var dependencies = plugin.GetDependencies()?.ToList(); if (dependencies is null || !dependencies.Any()) { return; } foreach (var puppeteerExtraPlugin in dependencies) { Use(puppeteerExtraPlugin); var plugDependencies = puppeteerExtraPlugin.GetDependencies()?.ToList(); if (plugDependencies != null && plugDependencies.Any()) { plugDependencies.ForEach(ResolveDependencies); } } }