Я пытаюсь перемещаться по странице, а затем я хотел бы получить доступ к некоторым элементам страницы, но я получил те ошибки, которые я указал ниже. Я поделился своим кодом ниже, вы можете попробовать. Как я могу решить эту проблему?
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)