darcyc大佬这个好像适用于跨域iframe的场景测试,如果测试没有成功时,可以试试这个上传文件跨iframe的方法,该方式适用于同域iframe框架场景测试

使用问题 · 73 次浏览
回复内容
darcyc 1天15小时前
#1

你链接里获得所有nodeId的方法不一定凑效,该实例起因是需求人要在(应该是京东的电商后台)上传图片,现我没有该平台的权限,我之前上机测试就是用depth: -1的,我没有公开那个案例,你可以看一下 "depth": -1 在网页层次非常深的时候 会有不可接受的延迟

涛涛涛 回复 darcyc 1天15小时前 :

它的原理是,先获取主框架的nodeId,再获取框架iframe里的文件框CSS的nodeId,没有获取全部的nodeId,它的一步一步的获取的,好像主框架和iframe框架的上下文id不一样,无法直接获取iframe里的文件框CSS的nodeId,没有用depth: -1这个参数

涛涛涛 回复 darcyc 1天14小时前 :

通过DOM.getDocument的参数{"pierce":true,"depth": -1}这个cdp协议可以获取全部nodeId,如果使用这两个参数的话,查找文件框数据的nodeId会有问题,我没有直接使用其参数,我是一步一步的向里查找的   其参数好像和 3.backendNodeId:-后端节点ID- 选填  有点关系,没有太去探究
浏览器插件跨框架(frame)上传文件的方法 - Quicker

涛涛涛 最后更新于 1天14小时前
darcyc 回复 涛涛涛 1天14小时前 :

好的,我反正看你的简介里有写到这个方法,没有仔细看,现在看你动作里的方法是另外一种

俺现在暂时不想看这个问题,因为我现在自己没有这个场景,至于你标题提到的 可能不通用,我不认为我提供的方法不通用,因为我是直接连接到target的(targetId)而不是tabId

你要验证是否可用很简单,你直接看一下你的iframe是否在target列表里就可以了,随后根据其属性找到对应的targetId


当我写到这里的时候,我看到你图片里那个iframe不是src,那我这个案例只提供通过url找target的方法,那我这个动作**当然**不适用你的情况,因为你用了所谓的”行内“的iframe。

那你以后测试的时候其实应该搭建 iframe使用src 的场景,这样更加符合用户终端场景,我从未见过iframe中srcdoc的情况,盲猜你的实验场景是AI搭的

总的来说,你提供了额外一种解决该问题的方法,该方法对后来者提供了一些其他线索,提供了宝贵的学习资源,


【新时代免责申明】以上内容手工编写,未打开AI生成和润色

涛涛涛 回复 darcyc 1天14小时前 :

好的,我只是提供一个方式,可能我们说的使用场景不太一样,我改一下标题,感谢大佬的回复

回复主贴