WebView2コントロールでの操作

WebView2コントロールでWebサイトを操作する方法

WebBrowserコントロールでは直接DOM操作できるメソッド・プロパティ(getElementByIdメソッドやdocumentプロパティ等)がありましたが、 WebView2コントロールにはありません。

WebView2コントロールでは、ExecuteScriptAsyncメソッドを使用して、JavaScriptのコードを使ってWebページを操作します。

また、WebページのJavaScriptからアプリケーションに情報を渡すことができます。
JavaScriptの「window.chrome.webview.postMessage」と、アプリケーション側では「webView.CoreWebView2.WebMessageReceived」イベントを使用します。

DOMを操作する

WebView2でDOM操作する場合、ExecuteScriptAsyncメソッドを使用します。
ExecuteScriptAsyncメソッドの引数に、実行したいJavaScriptのコードの文字列を渡して実行します。
DOMの値を取得する場合は、ExecuteScriptAsyncメソッドの戻り値を取得してください。

							Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

								'Yahooの検索欄に文字を設定する
								Await WebView2.ExecuteScriptAsync($"document.getElementsByName('p')[0].value = 'プログラムでネットサーフィン!';")
						
								'検索欄の文字列を取得する
								Dim result = Await WebView2.ExecuteScriptAsync("document.getElementsByName('p')[0].value")
								MessageBox.Show(result)
						
								'submitして検索を実行
								Await WebView2.ExecuteScriptAsync($"document.forms['sf1'].submit();")
						
							End Sub
						
							async private void button1_Click(object sender, EventArgs e)
							{
								//Yahooの検索欄に文字を設定する
								await webView2.ExecuteScriptAsync($"document.getElementsByName('p')[0].value = 'プログラムでネットサーフィン!';");
					
								//検索欄の文字列を取得する
								var result = await webView2.ExecuteScriptAsync("document.getElementsByName('p')[0].value");
								MessageBox.Show(result);
					
								//submitして検索を実行
								await webView2.ExecuteScriptAsync($"document.forms['sf1'].submit();");
							}
						

参考