Skip to content

Doc - Only a single WebView2DevToolsContext should exist at any given time #11

Description

@martinweihrauch

I have a weird problem (and can share you the source, if you like).

I have a WPF with a webview.
I have a Click Button for users to navigate to a URL:

private void Button_Go_Click(object sender, RoutedEventArgs e)
{
if (!_handlerAttached)
{
webView.CoreWebView2.DOMContentLoaded += WebView_NavigationCompleted;
_handlerAttached = true;
}
if (webView != null && webView.CoreWebView2 != null)
{
webView.CoreWebView2.Navigate(tbUrl.Text);
}
}

private async void WebView_NavigationCompleted(object sender, CoreWebView2DOMContentLoadedEventArgs e)
{
var text = await webView.ExecuteScriptAsync("document.body.innerHTML");
var devToolsContext = await webView.CoreWebView2.CreateDevToolsContextAsync();
await Handle(devToolsContext);
}

public async Task Handle(WebView2DevToolsContext dtc)
{

        var body = await dtc.QuerySelectorAsync<HtmlElement>("body");
        if (body != null)
        {
            
        }

Now the weird bug:

In the application, I click on the button, then it correctly executes the method "WebView_NavigationCompleted" and then the method "Handle".
If I click again, it executes the method WebView_NavigationCompleted and jumps over the method Handle .
If I click again, then it first executes the Handle method and only then goes into WebView_NavigationCompleted.

Do you have any explanation?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions