1

I can get puppeteer-sharp (with headless both true and false) to obtain server-side-rendered Blazor pages, but it looks like I'm only getting the server pre-render and NOT any client-side initiated events (e.g., for instance the second OnInitialized, or any OnAfterRender, OnAfterRenderAsync).

My best guess is that Signal R is not working properly using puppeteer-sharp.

I do this:

        using var browserFetcher = new BrowserFetcher();
        await browserFetcher.DownloadAsync();
        await using var browser = await Puppeteer.LaunchAsync(new LaunchOptions { 
            Headless = true
        });
        await using var page = await browser.NewPageAsync();
        await page.SetJavaScriptEnabledAsync(true);
        await page.GoToAsync("<<mypage>>, 
                     new NavigationOptions { 
                              WaitUntil = new WaitUntilNavigation[] { 
                                  WaitUntilNavigation.Load 
                              }  
                     }
        );
        string sContent = await page.GetContentAsync();

Is there any way to get ALL of the Blazor events to fire properly, or any good discussion of this on the web somewhere?

Thanks in advance!

brian_arm
  • 71
  • 4

1 Answers1

1

The answer here was that puppeteer-sharp is actually working just fine with SignalR in all cases.

I really had a separate, more general problem with my authorization settings where the fallback was improperly set. In that case, pages that supposedly did not require authorization were really only providing a single server-prerender (and no later SignalR-enabled onParameterSet, etc.). This incorrect behavior was the same in both a manual browser windows and puppeteer.

brian_arm
  • 71
  • 4