【问题标题】: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。
随意使用另一种将代码放入字符串的方法。