Exemplo n.º 1
0
 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);
        }
Exemplo n.º 4
0
        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);
                }
            }
        }