WebView2 応用テクニック
テキスト要素への文字入力をキーボード入力で行う
ページ内のテキスト要素への文字入力は、通常はJavaScriptのコードを使ってvalue='xxxx'のように行いますが、
キーボード相当での文字入力を行う事もできます。
SendKeys.SendWaitを使えばキーボードから文字を入力したのと同じ動作になります。
入力欄がアクティブになっていないとキーボード入力を受け付けませんので、webView2.Focus()でWebViewをアクティブにして、
テキスト要素に対しても.focus()でアクティブにします。
サンプル
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'テストページを開く
webView2.CoreWebView2.Navigate("https://web.biz-prog.net/test/testpage.html")
Await Task.Delay(2000)
'WebViewにフォーカスをあてる
webView2.Focus()
'アドレスに文字を入力
Await webView2.CoreWebView2.ExecuteScriptAsync($"document.getElementById('inputid1').focus();")
SendKeys.SendWait("test")
End Sub
private async void button1_Click(object sender, EventArgs e)
{
//自動入力がONだと時々入力が失敗するので、OFFにする
webView2.CoreWebView2.Settings.IsGeneralAutofillEnabled = false;
//テストページを開く
webView2.CoreWebView2.Navigate("https://web.biz-prog.net/test/testpage.html");
await Task.Delay(2000);
//WebViewにフォーカスをあてる
webView2.Focus();
//アドレスに文字を入力
await webView2.CoreWebView2.ExecuteScriptAsync($"document.getElementById('inputid1').focus();");
SendKeys.SendWait("test");
}
