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"); }