//文件上传函数
async function 文件上传(e) {
let {target: t, selector: r, files: o} = e
, n = await Pe(t)
, a = !1;
try {
a = (await chrome.debugger.getTargets()).some(u => u.tabId === n.tabId && u.attached),
a || await chrome.debugger.attach(n, "1.3");
let l = await chrome.debugger.sendCommand(n, "DOM.getDocument", {});
l = await chrome.debugger.sendCommand(n,"DOM.querySelector", {"nodeId": l.root.nodeId,"selector":r});
l = await chrome.debugger.sendCommand(n, "DOM.setFileInputFiles", {"nodeId":l.nodeId,"files":o});
return a || await chrome.debugger.detach(n),l
} catch (s) {
if (!a)
try {
await chrome.debugger.detach(n)
} catch (l) {
console.error("\u5206\u79BB\u8C03\u8BD5\u5668\u65F6\u51FA\u9519:", l)
}
throw s
}
}
//参数说明
target: 调试目标
selector: 文件框css选择器
files: 需要上传文件的路径数组
//参数示例
{
"target": {"tabId": 123},
"selector": "#fileInput",
"files":["C:/Users/Administrator/Desktop/js脚本.txt"]
}
以下是两个子程序:mv3版和mv2版可以测试
https://getquicker.net/subprogram?id=f2b6aea4-ebcd-4bc2-5ebc-08dd8e05eba5
https://getquicker.net/subprogram?id=d03f91f5-d60f-42cd-9913-08dd95a58a82