Example #1
0
 public PuppeteerExtra Use(IPuppeteerExtraPlugin plugin)
 {
     ResolveDependencies(plugin);
     _plugins.Add(plugin);
     plugin.OnPluginRegistered();
     return(this);
 }
        protected async Task <Browser> LaunchWithPluginAsync(IPuppeteerExtraPlugin 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(IPuppeteerExtraPlugin plugin = null)
        {
            Browser browser = null;

            if (plugin != null)
            {
                browser = await LaunchWithPluginAsync(plugin);
            }
            else
            {
                browser = await LaunchAsync();
            }

            var page = (await browser.PagesAsync())[0];

            return(page);
        }
Example #4
0
        private void ResolveDependencies(IPuppeteerExtraPlugin plugin)
        {
            if (plugin.Dependencies is null || !plugin.Dependencies.Any())
            {
                return;
            }
            var dependencies = plugin.Dependencies.ToList();

            foreach (var puppeteerExtraPlugin in dependencies)
            {
                Use(puppeteerExtraPlugin);

                var plugDependencies = puppeteerExtraPlugin.Dependencies?.ToList();

                if (plugDependencies != null && plugDependencies.Any())
                {
                    plugDependencies.ForEach(ResolveDependencies);
                }
            }
        }