diff --git a/lib/PuppeteerSharp/Cdp/FrameManager.cs b/lib/PuppeteerSharp/Cdp/FrameManager.cs index cce6708ab..4eccce0d5 100644 --- a/lib/PuppeteerSharp/Cdp/FrameManager.cs +++ b/lib/PuppeteerSharp/Cdp/FrameManager.cs @@ -118,7 +118,6 @@ internal async Task InitializeAsync(CDPSession client) _frameTreeHandled.TrySetResult(true); _frameTreeHandled = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var networkInitTask = NetworkManager.AddClientAsync(client); - var getFrameTreeTask = client.SendAsync("Page.getFrameTree"); var autoAttachTask = client != Client ? client.SendAsync("Target.setAutoAttach", new TargetSetAutoAttachRequest { @@ -128,8 +127,11 @@ internal async Task InitializeAsync(CDPSession client) }) : Task.CompletedTask; + // Page.enable must be sent before Page.getFrameTree to ensure frame events are received + await client.SendAsync("Page.enable").ConfigureAwait(false); + + var getFrameTreeTask = client.SendAsync("Page.getFrameTree"); await Task.WhenAll( - client.SendAsync("Page.enable"), getFrameTreeTask, autoAttachTask).ConfigureAwait(false);