私は次のコードを持っています:
if (helper == null)
{
helper = webView21.CoreWebView2.GetDevToolsProtocolHelper();
Document = await helper.DOM.GetDocumentAsync(-1, true);
}
int querySelectorResponse = await helper.DOM.QuerySelectorAsync(Document.NodeId, "#fileupload");
await helper.DOM.SetFileInputFilesAsync(new string[] { filename }, querySelectorResponse);
新しい DevToolsHelper を作成し、WebView2 ブラウザー コントロールからドキュメントを取得します。ドキュメントで #fileupload コントロールを検索し、見つけました。(ノード 173) そこ (コードの最後の行) から、ファイル (ファイル名) をアップロードしようとします。「値が期待される範囲内にありません」というエラーが表示されます。
最後の行を次のように変更すると
Task ttt = helper.DOM.SetFileInputFilesAsync(new string[] { filename }, querySelectorResponse);
エラーは発生しませんが、ttt でクイックウォッチを実行すると、次のようになります。
この最後のコード行で実際にファイルをアップロードするにはどうすればよいですか?
****** 更新 ****** CallDevToolsProtocolMethodAsync を使用してみました:
if (helper == null)
{
helper = webView21.CoreWebView2.GetDevToolsProtocolHelper();
Document = await helper.DOM.GetDocumentAsync(-1, true);
}
int querySelectorResponse = await helper.DOM.QuerySelectorAsync(Document.NodeId, "#fileupload");
tst Test = new tst();
Test.filename = new string[] { filename };
Test.nodeId = querySelectorResponse;
string json = JsonConvert.SerializeObject(Test);
(json 文字列は次のようになります: {"files":["C:\ProgramData\Quicktech.com\Quicktech Offline Agent\ScreenCaptures\Capture_2.jpg"],"nodeId":173}
string ttt = await webView21.CoreWebView2.CallDevToolsProtocolMethodAsync("DOM.SetFileInputFilesAsync", json);
ここでも、「値が期待される範囲内にありません」というエラーが表示されます。
ヘルプ !!!