0

私は次のコードを持っています:

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

ここでも、「値が期待される範囲内にありません」というエラーが表示されます。

ヘルプ !!!

4

0 に答える 0