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