【问题标题】:C# winform Application Webview2 webBrowser Submit button Not WorkingC# winform Application Webview2 webBrowser 提交按钮不工作
【发布时间】:2021-09-21 19:30:46
【问题描述】:

我是 c# webview2 浏览器的新手 我需要单击继续按钮,但是当我使用我的代码时,它并不能完全正常工作。

<button id="reg-submit-button" name="signup" type="submit" data-rapid-tracking="true" data-ylk="elm:btn;elmt:nxt;slk:continue;mKey:registration-continue" class="pure-button puree-button-primary puree-spinner-button">Continue</button>

请检查一下并给我更好的解决方案。

下面我正在尝试但没有成功。

            webView21.ExecuteScriptAsync("Document.GetElementById('reg-submit-button').submit();");

【问题讨论】:

标签: c# winforms webbrowser-control webview2


【解决方案1】:

给定以下 HTML:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>

    <script>
        function btnClickAction(name) {
            alert('button ' + name + ' was clicked');
        }
    </script>
</head>
<body>

    <button type="button" class="size-grid-button" id="size-grid-button1" onclick="btnClickAction('size-grid-button1')">Click Me 1</button>
    <button type="button" class="size-grid-button" id="size-grid-button2" onclick="btnClickAction('size-grid-button2')">Click Me 2</button>
    <button type="button" class="size-grid-button" id="size-grid-button3" onclick="btnClickAction('size-grid-button3')" value="Click Me 3">Click Me 3</button>

    <input type="button" class="size-grid-button" id="size-grid-button4" onclick="btnClickAction('size-grid-button4')" value="Click Me 4" />

</body>
</html>

尝试以下方法:

await webView21.ExecuteScriptAsync("document.getElementById('reg-submit-button').click();");

下面展示了如何创建一个可用于调试的函数。

string jsCode = "function clickDesiredButtonById(btnId) {
    let result = null;
    let desiredButton = document.getElementById(btnId);
    
    if (desiredButton) {
        desiredButton.click();
        result = 'button with id = ' + btnId + ' clicked';
    }
    
    //window.chrome.webview.postMessage("result:" + result);
    return result;
}";

jsCode += System.Environment.NewLine;
jsCode += "clickDesiredButtonById('" + btnId + "');";

var result = await webView21.CoreWebView2.ExecuteScriptAsync(jsCode);

注意btnId 是您想要的按钮的 id。

随意使用另一种将代码放入字符串的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-20
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    相关资源
    最近更新 更多