Ошибка Puppeteersharp: сбой навигации из-за отключения браузера - PullRequest
3 голосов
/ 09 июля 2020

Я пытаюсь перемещаться по странице, а затем я хотел бы получить доступ к некоторым элементам страницы, но я получил те ошибки, которые я указал ниже. Я поделился своим кодом ниже, вы можете попробовать. Как я могу решить эту проблему?

Puppeteersharp Версия: 2.0.3 Операционная система: Windows 10. Net Библиотека:. Net Core 3.1

 class Program
    {
        static async Task Main(string[] args)
        {
            try
            {
                var page = await GetPageInstance(GetOptions());
                try
                {
                    await page.GoToAsync("https://www.kijk.nl/", new NavigationOptions { WaitUntil = new WaitUntilNavigation[] { WaitUntilNavigation.Load, WaitUntilNavigation.Networkidle2 } });
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                var possibleCookieAcceptElements = await page.QuerySelectorAllAsync("button");
                Console.Read();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

        private static LaunchOptions GetOptions()
        {
            return new LaunchOptions
            {
                Headless = false,
                Timeout = 0,
                ExecutablePath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
                Args = new string[] {
                    "--no-sandbox",
                    "--disable-notifications",
                    "--disable-dev-shm-usage",
                    "--disable-setuid-sandbox",
                    "--lang=en-US,en-GB,en",
                },
                Devtools = false,
                IgnoreHTTPSErrors = true,
                DumpIO = false
            };
        }

        public static async Task<Page> GetPageInstance(LaunchOptions options)
        {

            await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
            var browser = await Puppeteer.LaunchAsync(options);
            var page = await browser.NewPageAsync();

            return page;
        }
    }

Сообщение об ошибке, которое я получил для внутреннего блока catch:

Ошибка навигации, потому что браузер отключился! (NetworkManager не смог обработать Network.requestWillBeSent. Значение не может быть нулевым. (Параметр 'key'). В System.Collections.Concurrent.ConcurrentDictionary2.ThrowKeyNullException () в System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd (TKeyactory key, Func в PuppeteerSharp.Helpers.MultiMap2.Add (ключ TKey, значение TValue) в PuppeteerSharp.Helpers.AsyncDictionaryHelper`2.GetItemAsyn c (ключ TKey) в PuppeteerSharp.NetworkManager.OnteSharploadPay, запрос * 10 .NetworkManager.OnRequestWillBeSentAsyn c (RequestWillBeSentPayload e) в PuppeteerSharp.NetworkManager.Client_MessageReceived (Отправитель объекта, MessageEventArgs e))

Внешний блок сообщения об ошибке, который я получил: *

Ошибка протокола (Runtime.evaluate): Сессия закрыта. Скорее всего, страница была закрыта. Причина закрытия: NetworkManager не смог обработать Network.requestWillBeSent. Значение не может быть нулевым. (Параметр «ключ»). в System.Collections.Concurrent.ConcurrentDictionary2.ThrowKeyNullException () в System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd (ключ TKey, Func2 valueFactory) в PuppeteerSharp.Helpers.MultiMap2.AddalCueKey valueer. `2.GetItemAsyn c (ключ TKey) в PuppeteerSharp.NetworkManager.OnRequestAsyn c (RequestWillBeSentPayload e, String interceptionId) в PuppeteerSharp.NetworkManager.OnRequestWillBeSentAsynload (в PuppeteerSharp.NetworkManager.OnRequestWillBeSentAsynload * 1029 MessageEventArgs e)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...