standard library
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210770326.7 (22)申请日 2022.06.30 (71)申请人 上海弘玑信息技 术有限公司 地址 201240 上海市闵行区紫星路58 8号2 幢13层055室 (72)发明人 潘巍  (74)专利代理 机构 北京超凡宏宇专利代理事务 所(特殊普通 合伙) 11463 专利代理师 钟扬飞 (51)Int.Cl. G06F 8/38(2018.01) G06F 8/30(2018.01) G06F 9/448(2018.01) G06F 9/451(2018.01) (54)发明名称 软件客户端的界面元素定位方法及电子设 备、 存储介质 (57)摘要 本申请提供一种软件客户端的界面元素定 位方法及电子设备、 存储介质, 软件客户端的交 互界面可以是基于QWebkit/QWebEngine页面展 示模块开发的, 或者基于 特定C++界面库开发的, 该方案通过代码注入和函数挂钩的方式, 通过机 器人软件启动软件客户端, 并向软件客户端注入 第一动态链接库, 并在软件客户端中调用第一动 态链接库的启动函数; 在软件客户端调用构造函 数时, 启动函数拦截构造函数, 跳转到第一动态 链接库的特定函数, 来获得界面元素, 从而定位 界面元素。 该方案可以精确定位QWebkit/ QWebEngine软件 客户端或者特定C++软件 客户端 的界面元 素。 权利要求书2页 说明书12页 附图6页 CN 115061685 A 2022.09.16 CN 115061685 A 1.一种软件客户端的界面元素定位方法, 其特征在于, 所述软件客户端的交互界面是 基于特定C++界面库开发的, 所述界面库以第二动态链接库的形式提供功能, 所述方法包 括: 机器人软件启动所述软件客户端, 并向所述软件客户端注入第一动态链接库, 并在所 述软件客户端中调用所述第一动态 链接库的启动函数; 在所述软件客户端调用所述第 二动态链接库的构造函数创建界面元素时, 所述启动函 数拦截所述构造函数, 跳转到所述第一动态链接库的元素保存函数, 所述元素保存函数将 所述界面元 素存入动态数组; 所述机器人 软件与所述第一动态 链接库的匹配函数通信, 发送当前鼠标位置; 所述第一动态链接库的匹配函数遍历所述动态数组中的界面元素, 将当前鼠标位置对 应的界面元 素信息返回所述机器人 软件。 2.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 在所述软件客户端调用所述第 二动态链接库的析构函数销毁若干界面元素时, 所述启 动函数拦截所述析构函数, 跳转到所述第一动态链接库的元素删除函数, 所述元素删除函 数将销毁的所述若干界面元 素从所述动态数组中删除。 3.根据权利要求1所述的方法, 其特征在于, 在所述软件客户端调用所述第 二动态链接 库的构造函数创建界面元素时, 所述启动函数拦截所述构造函数, 跳转到所述第一动态链 接库的元 素保存函数, 所述元 素保存函数将所述界面元 素存入动态数组, 包括: 在所述软件客户端调用所述第 二动态链接库中指定界面元素对应的构造函数时, 所述 启动函数拦截所述构 造函数, 跳转到所述第一动态链接库中所述构造函数挂钩的元素保存 函数, 所述元 素保存函数将所述界面元 素存入动态数组; 所述第二动态链接库包括多个界面元素一一对应的多个构造函数, 所述第 一动态链接 库包括多个构造函数一 一对应的多个元 素保存函数。 4.根据权利要求3所述的方法, 其特 征在于, 所述方法还 包括: 在所述软件客户端调用所述第 二动态链接库中特定界面元素对应的析构函数时, 所述 启动函数拦截所述析构函数, 跳转到所述第一动态链接库中与所述析构函数挂钩的元素删 除函数, 所述元 素删除函数将所述特定界面元 素从所述动态数组中删除; 所述第二动态链接库包括多个界面元素一一对应的多个析构函数, 所述第 一动态链接 库包括多个析构函数一 一对应的多个元 素删除函数。 5.根据权利要求1所述的方法, 其特征在于, 在所述启动函数拦截所述构造函数, 跳转 到所述第一动态链接库的元素保存函数, 所述元素保存函数将所述界面元素存入动态数组 之前, 所述方法还 包括: 所述启动函数创建所述动态数组, 用于存放所述界面元 素。 6.根据权利要求1所述的方法, 其特征在于, 在所述机器人软件与所述第 一动态链接库 的匹配函数通信, 发送当前鼠标位置之前, 所述方法还 包括: 所述启动函数创建通信管道, 用于与所述机器人 软件通信。 7.根据权利要求1所述的方法, 其特征在于, 所述第 一动态链接库的匹配函数遍历所述 动态数组中的界面元 素, 将当前鼠标位置对应的界面元 素信息返回所述机器人 软件, 包括: 所述匹配函数遍历所述动态数组中的界面元素, 利用所述第 二动态链接库中的导出函权 利 要 求 书 1/2 页 2 CN 115061685 A 2数获取每 个界面元 素的界面元 素信息; 所述界面元 素信息包括 位置信息; 所述匹配函数将所述当前鼠标信 息与每个界面元素的位置信 息进行比较, 筛选出匹配 的目标界面元 素; 所述匹配函数将所述目标界面元 素的界面元 素信息返回所述机器人 软件。 8.一种软件客户端的界面元素定位方法, 其特征在于, 所述软件客户端的交互界面是 基于QWebkit/QWebEngine页面展示模块 开发的, 所述方法包括: 机器人软件启动所述软件客户端, 并向所述软件客户端注入第一动态链接库, 并在所 述软件客户端中调用所述第一动态 链接库的启动函数; 在所述软件客户端调用所述页面展示模块的构造函数创建网页框架对象时, 所述启动 函数拦截所述构造函数, 跳转到所述第一动态链接库的目标函数, 所述 目标函数创建所述 网页框架对象, 并注 册页面加载完成的通知回调函数; 在所述网页框架对象的页面加载完成时, 调用所述通知回调函数, 所述通知回调函数 调用所述页面展示模块 提供的接口函数, 执 行自定义代码, 生成元 素定位函数; 所述机器人 软件与所述第一动态 链接库的匹配函数通信, 发送当前鼠标位置; 所述匹配函数通过所述接口函数调用所述元素定位函数, 获取所述当前鼠标位置对应 的界面元 素信息, 并将所述界面元 素信息返回所述机器人 软件。 9.根据权利要求8所述的方法, 其特征在于, 在所述机器人软件与所述第 一动态链接库 的匹配函数通信, 发送当前鼠标位置之前, 所述方法还 包括: 所述启动函数创建通信管道, 用于与所述机器人 软件通信。 10.根据权利要求8所述的方法, 其特征在于, 所述注册页面加载完成的通知回调函数, 包括: 使用Qt开发框架中的连接函数链接所述网页框架对象的加载完成信号和所述第一动 态链接库中的通知回调函数。 11.一种电子设备, 其特 征在于, 所述电子设备包括: 处理器; 用于存储处理器可执行指令的存 储器; 其中, 所述处理器被配置为执行权利要求1 ‑10任意一项所述的软件客户端的界面元素 定位方法。 12.一种计算机可读存储介质, 其特征在于, 所述存储介质存储有计算机程序, 所述计 算机程序可由处理器执行以完成权利要求1 ‑10任意一项所述的软件客户端的界面元素定 位方法。权 利 要 求 书 2/2 页 3 CN 115061685 A 3

.PDF文档 专利 软件客户端的界面元素定位方法及电子设备、存储介质

文档预览
中文文档 21 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共21页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 软件客户端的界面元素定位方法及电子设备、存储介质 第 1 页 专利 软件客户端的界面元素定位方法及电子设备、存储介质 第 2 页 专利 软件客户端的界面元素定位方法及电子设备、存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 07:52:51上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。