我有以下代码:
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);
同样,错误“值不在预期范围内”。
帮助 !!!