网页上传文件3(可跨iframe) 非公开

涛涛涛 更新于 4天7小时前 | 0 | (0) | 1
分类
点赞
暂无
更多信息
分享人 涛涛涛
分享时间 4天7小时前
最后更新 4天7小时前
修订版本 0
子程序大小 8.9 KB
Quicker版本 1.44.10.0

介绍

可跨iframe

第二种方式(单一框架)

通过DOM.getDocument的参数{"pierce":true,"depth": -1}这个cdp协议就可以获取全部nodeId.通过iframe框架的css选择器DOM.querySelector(nodeId,css)获取iframe框架nodeId,再通过iframe(nodeId+1)实现跨框架===》构成nodeId+1=nodeId==》DOM.querySelector(nodeId,css)==>DOM.setFileInputFiles(nodeId,路径)


1.通过DOM.getDocument

   chrome.debugger.sendCommand({tabId: tabId}, 'DOM.getDocument',{},(result) => {console.log(result);})==>获取顶层框架(tab页)的nodeId


2.通过DOM.querySelector(第1次用)

   例如iframeCSS选择器(#iframe)   

     chrome.debugger.sendCommand({tabId: tabId}, 'DOM.querySelector',{nodeId: nodeId,selector:"#iframe"},(result) => {console.log(result);}) ==>>获取到iframe的CSS选择器的nodeId,再nodeId=nodeId+1这样就获取跨框架的nodeId


3.通过DOM.querySelector(第2次用)

     例如文件框CSS选择器(#fileInput)   注意这个是重点(跨框架的nodeId):nodeId=nodeId+1

     chrome.debugger.sendCommand({tabId: tabId}, 'DOM.querySelector',{nodeId: nodeId,selector:"#fileInput"},(result) => {console.log(result);}) ==>>获取到文件框CSS选择器的nodeId


4.通过DOM.setFileInputFiles

      例如设置文件路径["C:/Users/Administrator/Desktop/222.txt"]

      chrome.debugger.sendCommand({tabId: tabId}, "DOM.setFileInputFiles", {nodeId:nodeId,"files":["C:/Users/Administrator/Desktop/222.txt"]})




async function wt(tabId) {

            var n={tabId: tabId}

            let 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":"#iframe"});

            l = await chrome.debugger.sendCommand(n,"DOM.querySelector", {"nodeId": l.nodeId+1,"selector":"#fileInput"});

            l = await chrome.debugger.sendCommand(n, "DOM.setFileInputFiles", {"nodeId":l.nodeId,"files":["C:/Users/Administrator/Desktop/11.png"]});

            console.log("1111111");

}

子程序的参数

输入
选项 Text
tab页tabId Text
iframe选择器CSS Text
文件框css Text
文件路径 支持多行文件路径,不要随意添加换行 List
输出
文件框nodeId 默认的文本变量 Integer

最近更新

修订版本 更新时间 更新说明
0 4天7小时前

最近讨论

暂无讨论