开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3623|回复: 3
收起左侧

[原创视频分享] 13-队长谷歌网页填表协yi之检查请求节点事件探测元素

[复制链接]
结帖率:100% (3/3)
发表于 2023-2-22 17:52:24 | 显示全部楼层 |阅读模式   辽宁省沈阳市
分享视频教程
教程类型: 语音教程       
教程讲师: 小虫子
下载地址1: https://www.bilibili.com/video/BV1zD4y1G7pk/?vd_source=f657dd899649681cd923427a132f828e
本帖最后由 xuel200 于 2023-2-22 17:56 编辑

教程观看不分集 每个教程都是独立一节 学习封装谷歌游览器网页填表协议的过程、或者调试注意事项
队长填表模块117 - 2.6

从Devtools协议获取只具有backendNodeId的元素的Javascript引用
我希望能够将鼠标放在页面上,让它突出显示光标下的元素(与开发人员工具检查器相同),当我单击鼠标时,可以获得该元素的XPath。启用元素检查器并接收要通过代码完成的XPath,以及由人进行的元素选择。
我可以通过使用Chrome Devtools Protocol和带有inspectNode=searchForNode的Overlay.setInspectMethod来启用devtools检查器行为。
在单击鼠标时,我会收到来自Overlay.inspectNodeRequested事件的被单击元素的DOM.BackendNodeId
devtools协议似乎没有任何内置的方法来获取XPath。所以我找到了Chrome开发人员工具复制-> this功能的Xpath javascript实现。
虽然我可以通过CDT协议评估javascript,但经过几个小时的尝试,我不知道如何获得对Node的引用来执行javascript函数,而我所拥有的只有BackendNodeId。
有没有办法在javascript中获得对节点的引用,或者在CDTProtocol中获得节点的XPath?


找到合适的解决方案
首先,我需要通过以下方式获取对Javascript对象的引用
DOM.resolveNode, {backendNodeId: nId}
然后从返回的JSON对象中提取objectId。它看起来像这样


然后,我可以调用任何我喜欢的函数,使用元素作为上下文
Runtime.callFunctionOn, {functionDeclaration: "function(){getXPathForElement(this)}", objectId: "{"injectedScriptId":3,"id":3}"




结帖率:0% (0/2)
发表于 2023-2-25 00:14:49 | 显示全部楼层   安徽省合肥市
说的很详细,不错不错
回复 支持 反对

使用道具 举报

签到天数: 14 天

发表于 2023-2-23 20:08:35 | 显示全部楼层   湖北省荆州市
太感谢了6666
回复 支持 反对

使用道具 举报

结帖率:100% (17/17)

签到天数: 14 天

发表于 2023-2-22 20:02:26 | 显示全部楼层   河北省石家庄市
感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表