puppeteer-sharp
puppeteer-sharp copied to clipboard
Navigation failed because browser has disconnected!
Description
I try using puppeteer-sharp with Firefox and getting this exception after page is loaded: https://bot.sannysoft.com/. At that time, page https://google.com was loaded without exceptions.
Navigation failed because browser has disconnected! (Page failed to process Runtime.consoleAPICalled. Error reading string. Unexpected token: StartObject. Path ''.. at Newtonsoft.Json.JsonReader.ReadAsString()
at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType, JsonSerializer jsonSerializer)
at Newtonsoft.Json.Linq.JToken.ToObject[T](JsonSerializer jsonSerializer)
at PuppeteerSharp.Helpers.Json.JTokenExtensions.ToObject[T](JToken token, JsonSerializerSettings jsonSerializerSettings) in C:\projects\puppeteer-sharp\lib\PuppeteerSharp\Helpers\Json\JTokenExtensions.cs:line 41
at PuppeteerSharp.Helpers.Json.JTokenExtensions.ToObject[T](JToken token, Boolean camelCase) in C:\projects\puppeteer-sharp\lib\PuppeteerSharp\Helpers\Json\JTokenExtensions.cs:line 23
at PuppeteerSharp.Helpers.RemoteObjectHelper.ValueFromType[T](JToken value, RemoteObjectType objectType, Boolean stringify) in C:\projects\puppeteer-sharp\lib\PuppeteerSharp\Helpers\RemoteObjectHelper.cs:line 70
at PuppeteerSharp.Helpers.RemoteObjectHelper.ValueFromRemoteObject[T](RemoteObject remoteObject, Boolean stringify) in C:\projects\puppeteer-sharp\lib\PuppeteerSharp\Helpers\RemoteObjectHelper.cs:line 42
at PuppeteerSharp.Page.<>c.<AddConsoleMessageAsync>b__255_1(JSHandle i) in C:\projects\puppeteer-sharp\lib\PuppeteerSharp\Page.cs:line 2488
at System.Linq.Enumerable.SelectArrayIterator2.MoveNext() at System.String.JoinCore[T](ReadOnlySpan1 separator, IEnumerable1 values) at System.String.Join[T](String separator, IEnumerable1 values)
at PuppeteerSharp.Page.AddConsoleMessageAsync(ConsoleType type, JSHandle[] values, StackTrace stackTrace) in C:\projects\puppeteer-sharp\lib\PuppeteerSharp\Page.cs:line 2501
at PuppeteerSharp.Page.Client_MessageReceived(Object sender, MessageEventArgs e) in C:\projects\puppeteer-sharp\lib\PuppeteerSharp\Page.cs:line 2229)
at PuppeteerSharp.FrameManager.NavigateFrameAsync(Frame frame, String url, NavigationOptions options) in C:\projects\puppeteer-sharp\lib\PuppeteerSharp\FrameManager.cs:line 125
at XGoogleAccMakerPT.Program.PuppeteerApp.Run() in d:\source\repos\XGoogleAccMakerPT\XGoogleAccMakerPT\Program.cs:line 115
Complete minimal example reproducing the issue
List<string> listArgs = new()
{
"--start-maximized"
};
List<string> listIgnoredDefaultArgs = new()
{
"--enable-automation"
};
LaunchOptions launchOptions = new()
{
Headless = false,
SlowMo = 1,
Product = isChrome ? Product.Chrome : Product.Firefox,
Args = listArgs.ToArray(),
IgnoredDefaultArgs = listIgnoredDefaultArgs.ToArray(),
};
browser = await Puppeteer.LaunchAsync(launchOptions);
Page[] pages = await browser.PagesAsync();
page = pages[0];
page.DefaultTimeout = 5000;
await page.DeleteCookieAsync();
ScreenshotOptions screenshotOptions = new()
{
Type = ScreenshotType.Jpeg,
Quality = 100,
FullPage = false
};
Response response = null;
try
{
response = await page.GoToAsync(siteUrl, WaitUntilNavigation.Load); // Line of Exception #115
Console.WriteLine($"URL: {response.Url}\nPage status: {response?.StatusText}");
await page.ScreenshotAsync(Environment.CurrentDirectory + @"\Screenshot_01.jpg", screenshotOptions);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}\n{ex?.StackTrace}\nPage status: {response?.StatusText}");
}
finally
{
await page.ScreenshotAsync(Environment.CurrentDirectory + @"\Screenshot_01.jpg", screenshotOptions);
}
Thank you very much!
Thanks for reporting that. I'll take a look at it.