CN117130717A - RPA场景下HTMLayout应用程序的元素定位方法及*** - Google Patents
RPA场景下HTMLayout应用程序的元素定位方法及*** Download PDFInfo
- Publication number
- CN117130717A CN117130717A CN202311407694.6A CN202311407694A CN117130717A CN 117130717 A CN117130717 A CN 117130717A CN 202311407694 A CN202311407694 A CN 202311407694A CN 117130717 A CN117130717 A CN 117130717A
- Authority
- CN
- China
- Prior art keywords
- rpa
- information
- htmlayout
- window
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 230000008569 process Effects 0.000 claims abstract description 62
- 238000004891 communication Methods 0.000 claims abstract description 16
- 230000009471 action Effects 0.000 claims abstract description 14
- 238000002347 injection Methods 0.000 claims description 12
- 239000007924 injection Substances 0.000 claims description 12
- 230000003993 interaction Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012015 optical character recognition Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004801 process automation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于计算机技术领域,具体涉及RPA场景下HTMLayout应用程序的元素定位方法及***。方法包括:S1,以用户所要操作的软件界面对象作为输入,并判断当前软件界面的窗口类名是否为HTMLayout窗体,若为HTMLayout窗体,则获取HTMLayout软件的进程信息,并注入元素解析模块;S2,对RPA元素进行拾取,获得所述RPA元素的种类信息、属性信息以及支持的操作动作信息;S3,将获得的RPA元素的种类信息、属性信息以及支持的操作动作信息通过通信模块展示在组件展示界面;S4,用户在组件展示界面确认拾取到的RPA元素为要操作的RPA元素后,确认完成拾取。本发明具有能够解决使用HTMLayout框架开发的客户端软件中RPA元素无法拾取问题的特点。
Description
技术领域
本发明属于计算机技术领域,具体涉及RPA场景下HTMLayout应用程序的元素定位方法及***。
背景技术
RPA(RPA Robotic Process Automation 机器人流程自动化)是一种通过软件机器人自动执行重复性、规则性任务的技术,用户可以通过专业的RPA流程编辑器,将规则的、固定逻辑的业务编排成对应的自动化任务,并将这些自动化任务按一定的调度条件(如定时触发、事件驱动、文件触发等)下发给软件机器人执行,软件机器人在执行任务时会模拟人类与计算机***的交互,如鼠标点击、键盘输入、复制粘贴、文件操作等,来实现设定的业务逻辑。RPA对现有***无侵入,无需进行复杂的***改造和集成,可以在不改变现有***架构的情况下实现业务流程的自动化。
RPA技术的核心是对计算机软件界面上的各类元素,例如按钮、文字、搜索框、输入框、可操作区域等,进行精确的定位(或叫拾取)和操作,进而完成流程执行所需的点击、跳转、输入、复制、粘贴等动作。对于桌面应用软件,传统的RPA元素拾取技术是基于操作***提供的活动辅助功能接口(Active Accessibility)实现;对于浏览器中的网页,通常为了更为精确的获取网页(使用超文本标记语言(Hyper Text Markup Language, 后简称HTML)开发的页面)的结构和网页中的HTML标签的元信息;通常采用浏览器提供的插件扩展机制,借助浏览器公开的BOM和DOM API实现拾取;从而实现各类操作,如点击按钮、点击搜索框并输入文字、移动到某张图片上等。
然而在RPA的实际场景中,往往有一些桌面应用软件,无法通过操作***提供的活动辅助功能接口(Active Accessibility)或浏览器插件机制来定位到元素,比如在遇到使用HTMLayout框架开发的桌面应用软件,RPA软件所能获取到的仅仅是软件窗口信息,无法获取窗口内的元素信息,在这种情况下就需要采用其他技术来实现元素拾取。当前比较流行的是基于计算机视觉(Computer Vision, 后简称CV)技术实现的元素拾取,通过将界面上的各类元素作为图片中的一个个目标,借助CV领域的目标检测技术和光学字符识别(Optical Character Recognition, 后简称OCR)技术定位和识别出每个元素的位置和类型,进而支持一系列的移动、点击、输入等操作。
然而上述通过计算机视觉方式虽然一定程度上解决了元素拾取,但是往往只能获取元素的坐标信息,无法精确地读取元素的类型、隐藏的文本、元素之间的层次关系,限制了其可以支持RPA软件操作元素的能力范围。
因此,设计一种能够解决使用HTMLayout框架开发的客户端软件中RPA元素无法拾取问题的RPA场景下HTMLayout应用程序的元素定位方法及***,就显得十分重要。
发明内容
本发明是为了克服现有技术中,传统的RPA元素拾取方式针对HTMLayout 框架开发的客户端软件,无法识别软件界面中的元素类别、元素的属性信息,以及元素可以支持的操作的问题,提供了一种能够解决使用HTMLayout框架开发的客户端软件中RPA元素无法拾取问题的RPA场景下HTMLayout应用程序的元素定位方法及***。
为了达到上述发明目的,本发明采用以下技术方案:
RPA场景下HTMLayout应用程序的元素定位方法,包括如下步骤;
S1,以用户所要操作的软件界面对象作为输入,并判断当前软件界面的窗口类名是否为HTMLayout窗体,如果为HTMLayout窗体,则获取HTMLayout软件的进程信息,并注入元素解析模块;
S2,利用元素解析模块对RPA元素进行拾取,获得所述RPA元素的种类信息、属性信息以及支持的操作动作信息;
S3,将步骤S2中获得的RPA元素的种类信息、属性信息以及支持的操作动作信息通过通信模块展示在组件展示界面;
S4,用户在组件展示界面确认拾取到的RPA元素为要操作的RPA元素后,确认完成拾取。
作为优选,步骤S1中,所述注入元素解析模块的具体过程包括:
S11,在RPA进程中,调用***并创建远程线程函数,同时在要操作的目标软件进程内创建一个线程,并加载服务注入模动态链接库文件;
S12,当服务注入模动态链接库文件加载到目标软件进程中时,调用初始化函数初始化COM环境,同时使用运行时交互函数加载CLR环境;
S13,CLR 环境加载完成后,在CLR 默认应用程序域执行元素解析模块。
作为优选,所述元素解析模块包括元素的定位过程和元素的操作过程。
作为优选,所述元素的定位过程包括如下步骤:
S21,获取HTMLayout进程模块中导出的获取当前鼠标下元素、获取子元素、获取元素属性的函数地址;
S22,根据步骤S21获得的函数地址执行对应函数,获取当前鼠标下元素的信息,并获取子元素个数;
S23,若获取的子元素为空,则记录当前鼠标下元素的节点信息,并递归获取当前节点的父元素,直到父元素的类名属性是窗口元素CoolWindow,最后拼接当前鼠标下元素的路径信息;
若获取的子元素不为空,则循环遍历子元素,找出包含当前拾取坐标的子元素,并重复步骤S22。
作为优选,所述元素的操作过程包括如下步骤:
S24,根据步骤S23获得的元素路径信息,获取元素路径中的第一个元素节点窗口信息;
S25,若所述元素节点窗口信息在当前***运行中的窗口中,则查找当前窗口的所有子元素;
S26,获取所述元素路径信息中下一个节点的元素类型和属性信息,并从当前窗口的所有子元素中找出一个匹配的子元素;所述匹配的子元素的元素节点类型和属性信息,需与下一个节点的元素类型和属性信息都相同;
S27,若所有子元素都不匹配,则返回元素查找失败,并继续步骤S26,直到获取满足元素路径中最后一个节点的元素类型和属性信息,然后返回对应的元素类型和属性信息。
S28,根据返回的元素类型和属性信息,执行对应的操作。
作为优选,步骤S1中,所述当前软件界面的窗口类名通过Windows应用程序接口获取。
本发明还提供了RPA场景下HTMLayout应用程序的元素定位***包括;
服务注入模块,用于以用户所要操作的软件界面对象作为输入,并判断当前软件界面的窗口类名是否为HTMLayout窗体,如果为HTMLayout窗体,则获取HTMLayout软件的进程信息,并注入元素解析模块;
元素解析模块,用于对RPA元素进行拾取,获得所述RPA元素的种类信息、属性信息以及支持的操作动作信息;
通信模块,用于在RPA进程和HTMLayout进程中传输数据;
组件展示界面模块,用于展示拾取到的RPA元素信息并供用户确认。
作为优选,所述通信模块采用基于Socket的应用层通讯协议。
本发明与现有技术相比,有益效果是:(1)本发明提出的基于 HTMLayout框架的RPA元素定位方法和***,首先利用了.Net开发平台支持的托管语言,如C#、VB.NET、F# 的高级特性去操作C++非托管语言开发的本机软件界面元素,提高了RPA软件在元素拾取时的开发效率;其次解决了传统RPA元素拾取技术无法识别HTMLayout框架开发的客户端软件界面元素或利用计算机视觉算法的目标元素检测技术无法获取这类软件界面元素的种类、属性的详细信息和元素支持的其他事件操作,提高了用户使用RPA软件开发这类软件自动化流程的适用场景,优化了用户体验;(2)本发明方案可以使得RPA软件适用于更多的场景、实现更多自由度的流程编辑、实现更高效率的流程开发,提供更友好的用户体验,从而构建更智能的新一代RPA软件产品。
附图说明
图1为本发明中RPA场景下HTMLayout应用程序的元素定位***的一种功能构架图;
图2为本发明中元素的定位过程的一种流程图;
图3为本发明实施例提供的RPA场景下HTMLayout应用程序的元素定位方法与RPA软件结合在实际运行时的一种流程图。
具体实施方式
为了更清楚地说明本发明实施例,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
本发明提供了RPA场景下HTMLayout应用程序的元素定位方法,首先通过WindowsAPI 获取使用HTMLayout 框架开发的客户端软件进程和窗口句柄信息,为下面的元素拾取提供基础。进而,注入.NET开发平台的公共语言运行时CLR,使用CLR 加载.NET平台支持的托管语言,如C#、F#、VB.NET等开发的托管链接库即元素解析模块。然后,通过元素解析模块启动通信服务模块,最后,RPA软件可以发送获取元素信息、元素操作等指令到元素解析模块。元素解析模块执行完后返回执行结果。
本发明所提的***功能架构如图1所示,主要包括如下几个模块:
服务注入模块:以用户所要操作的软件界面对象作为输入,利用Windows API 获取当前软件窗口的窗口类名是否是HTMLayout窗体,如果是HTMLayout 软件应用,进一步获取软件进程信息,然后注入元素解析模块;
元素解析模块,用于对RPA元素进行拾取,获得所述RPA元素的种类信息、属性信息以及支持的操作动作信息;主要包括元素的定位过程和元素的操作过程两个主要部分;
通信模块:主要职责是在RPA进程和HTMLayout进程中传输数据,数据流向为从RPA应用进程中发送需要操作的指令(元素拾取、元素操作)到HTMLayout应用进程,然后HTMLayout进程返回操作指令执行的结果数据。通常采用基于Socket的应用层通讯协议。
最后,上述定位的元素结构体信息将通过通信模块展示在RPA应用软件的组件界面;
组件展示界面模块,组件界面即RPA软件的编辑和开发界面,所要拾取的元素的相关信息将展示在界面上供用户确认,用户确认无误则可以完成拾取,而后在执行时调用该元素信息进行定位和操作;同时界面结构相关信息也在组件界面展示,提供用户进一步继续拾取元素或操作软件界面的参考,所展示的界面结构信息将以树状结构呈现。
本发明还提供了的RPA场景下HTMLayout应用程序的元素定位方法,包括如下步骤;
1.以用户所要操作的软件界面对象作为输入,并判断当前软件界面的窗口类名是否为HTMLayout窗体,如果为HTMLayout窗体,则获取HTMLayout软件的进程信息,并注入元素解析模块;
2.利用元素解析模块对RPA元素进行拾取,获得所述RPA元素的种类信息、属性信息以及支持的操作动作信息;
3.将步骤S2中获得的RPA元素的种类信息、属性信息以及支持的操作动作信息通过通信模块展示在组件展示界面;
4.用户在组件展示界面确认拾取到的RPA元素为要操作的RPA元素后,确认完成拾取。
步骤1中,注入元素解析模块的具体过程包括:
1.在RPA进程中,调用***并创建远程线程函数,同时在要操作的目标软件进程内创建一个线程(因为不在同一个进程中,所以叫做远程线程),并加载服务注入模动态链接库(DLL)文件;
2.当服务注入模动态链接库文件加载到目标软件进程中时,调用初始化函数初始化COM环境,同时使用运行时交互函数加载CLR环境;
3.CLR 环境加载完成后,在CLR 默认应用程序域执行元素解析模块(使用.NET 平台语言开发的托管语言链接库)。
.Net 平台是一个开发人员使用平台,可以利用平台提供的开发语言(C#、F#、VB.Net)和平台提供的基础类库开发不同的应用类型(桌面、Web、链接库),并由平台提供的CLR 执行引擎运行。.NET开发平台一般由Windows 操作***一同安装。
.NET 平台相关术语:
托管语言:托管语言是.NET 平台上的开发语言,和C++这种本机语言的区别是前者通常编译成中间代码(IL),由公共语言运行时(CLR)在程序运行时通过即时编译器(JIT)执行,C++这种本机语言是直接编译成目标机器代码,由操作***执行。
CLR:是托管代码执行核心中的引擎。运行库为托管代码提供各种服务,如跨语言集成、代码访问安全性、对象生存期管理、调试和分析支持。它是整个.NET框架的核心,它为.NET应用程序提供了一个托管的代码执行环境。它实际上是驻留在内存里的一段代理代码,负责应用程序在整个执行期间的代码管理工作。
进一步的,元素解析模块包括元素的定位过程和元素的操作过程。
如图2所示,元素的定位过程包括如下步骤:
1.获取HTMLayout进程模块中导出的获取当前鼠标下元素、获取子元素、获取元素属性的函数地址;
2.根据步骤1获得的函数地址执行对应函数,获取当前鼠标下元素的信息,并获取子元素个数;
3.若获取的子元素为空,则记录当前鼠标下元素的节点信息,并递归获取当前节点的父元素,直到父元素的类名属性是窗口元素CoolWindow,最后拼接当前鼠标下元素的路径信息;
若获取的子元素不为空,则循环遍历子元素,找出包含当前拾取坐标的子元素,并重复步骤2。
元素的操作过程包括如下步骤:
4.根据步骤3获得的元素路径信息,获取元素路径中的第一个元素节点窗口信息;
5.若所述元素节点窗口信息在当前***运行中的窗口中,则查找当前窗口的所有子元素;
6.获取所述元素路径信息中下一个节点的元素类型和属性信息,并从当前窗口的所有子元素中找出一个匹配的子元素;所述匹配的子元素的元素节点类型和属性信息,需与下一个节点的元素类型和属性信息都相同;
7.若所有子元素都不匹配,则返回元素查找失败,并继续步骤6,直到获取满足元素路径中最后一个节点的元素类型和属性信息,然后返回对应的元素类型和属性信息。
8.根据返回的元素类型和属性信息,执行对应的操作。
如图3所示,展示了RPA软件定位HTMLayout应用软件的用户操作流程,同时展示本发明在实际应用中的实施方案以及如何将本发明方法和***与RPA软件结合的细节,具体过程如下:
1.RPA软件用户首先打开要操作和进行元素拾取的软件窗口界面,软件窗口的句柄和进程信息会作为输入传输到服务注入模块,服务注入模块将元素解析模块动态链接库文件注入到当前操作的软件进程中;
2.用户使用RPA中的元素编辑器来对软件界面元素进行元素拾取,此时会将用户移动的鼠标位置通过通信模块发送给元素解析模块,元素解析模块在后台将完成以下一些操作,即该***的各功能模块实现:
1)元素解析模块会根据上述发明方案中的步骤获取当前鼠标坐标位置下的元素区域信息和元素路径表达式,本实例中,以旺店通ERP软件登录界面为例:当鼠标移动到***桌面(1032,575)坐标时,会识别当前鼠标坐标位置下的“登录”按钮,获取的元素属性信息有:
元素的区域信息:(1032,575,56,23)
元素的标签类型:div
元素的ID:btn_login
元素在父元素中的索引位置:1
元素的文本:登录
元素的路径信息:CoolWindow[title=”登录旺店通”]/html[index=1]/body[index=1]/div[id=”btn_login”,index=1,text=”登录”]
2)元素解析模块通过通信模块返回获取的元素区域信息和元素路径表达式,本实例中,返回得拾取元素信息经序列化后元素的Json 信息结构如下:
{
"reactangle": {"x": 1032,"y": 575,"width": 56,"height": 23},
"path": [
{"tag": "CoolWindow","props": [{"name": "title","value": "登录旺店通"}]},
{"tag": "html","props": [{"name": "index","value": 1}]},
{"tag": "body","props": [{"name": "index","value": 1}]},
{"tag": "div","props": [{"name": "index","value": 1},{"name":"id","value": "btn_login"},{"name":"text","value": "登录"}]}
]
};
3)组件展示界面展示拾取结果和界面结构。
本实例中,组件展示界面以列表的形式展示拾取到的元素路径信息,以表格的信息展示组件的属性信息,以图片框的形式展示拾取到的元素区域截图信息。
3.用户在组件展示界面确认所拾取到的元素就是要操作的元素后确认完成拾取;本实例中,用户可以确认组件展示界面的元素信息,如果与预期的相符,则确认完成拾取,如果与预期不相符,可以对拾取的信息进行编辑或重新拾取。
4.确认拾取完成后RPA流程工程信息中将保存该步骤所要操作的元素的信息,至此这个操作的RPA流程编辑环节结束,所编辑的RPA流程可用于后续流程运行;
5.RPA流程包中包含了整个流程的代码信息和操作信息,其中每一步操作又包含要操作的元素信息或动作信息,当流程运行到该步骤时,RPA软件获取待操作的元素信息;
6.根据待操作元素信息和操作动作信息完成指定的操作。
以上从流程编辑中拾取指定元素到最终完成元素操作,完成了一个完整的RPA使用流程。
本发明独创性地提出基于 HTMLayout框架的RPA元素定位方法和***,首先利用了.Net开发平台支持的托管语言,如C#、VB.NET、F# 的高级特性去操作C++ 非托管语言开发的本机软件界面元素,提高了RPA软件在元素拾取时的开发效率;其次解决了传统RPA元素拾取技术无法识别HTMLayout框架开发的客户端软件界面元素或利用计算机视觉算法的目标元素检测技术无法获取这类软件界面元素的种类、属性的详细信息和元素支持的其他事件操作,提高了用户使用RPA软件开发这类软件自动化流程的适用场景,进一步优化用户体验。
本发明的创新点如下:
1.本发明创造性地提出一种使用.NET平台托管的高级语言去操作C++开发的客户端软件,从而实现该类软件界面操作自动化;
2.本发明创新性地设计并实现了HTMLayout软件应用的元素定位方法,该方法能保证针对这类软件为用户拾取到更精细、更准确的界面元素。
以上所述仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。
Claims (8)
1.RPA场景下HTMLayout应用程序的元素定位方法,其特征在于,包括如下步骤;
S1,以用户所要操作的软件界面对象作为输入,并判断当前软件界面的窗口类名是否为HTMLayout窗体,如果为HTMLayout窗体,则获取HTMLayout软件的进程信息,并注入元素解析模块;
S2,利用元素解析模块对RPA元素进行拾取,获得所述RPA元素的种类信息、属性信息以及支持的操作动作信息;
S3,将步骤S2中获得的RPA元素的种类信息、属性信息以及支持的操作动作信息通过通信模块展示在组件展示界面;
S4,用户在组件展示界面确认拾取到的RPA元素为要操作的RPA元素后,确认完成拾取。
2.根据权利要求1所述的RPA场景下HTMLayout应用程序的元素定位方法,其特征在于,步骤S1中,所述注入元素解析模块的具体过程包括:
S11,在RPA进程中,调用***并创建远程线程函数,同时在要操作的目标软件进程内创建一个线程,并加载服务注入模动态链接库文件;
S12,当服务注入模动态链接库文件加载到目标软件进程中时,调用初始化函数初始化COM环境,同时使用运行时交互函数加载CLR环境;
S13,CLR 环境加载完成后,在CLR 默认应用程序域执行元素解析模块。
3.根据权利要求1所述的RPA场景下HTMLayout应用程序的元素定位方法,其特征在于,所述元素解析模块包括元素的定位过程和元素的操作过程。
4.根据权利要求3所述的RPA场景下HTMLayout应用程序的元素定位方法,其特征在于,所述元素的定位过程包括如下步骤:
S21,获取HTMLayout进程模块中导出的获取当前鼠标下元素、获取子元素、获取元素属性的函数地址;
S22,根据步骤S21获得的函数地址执行对应函数,获取当前鼠标下元素的信息,并获取子元素个数;
S23,若获取的子元素为空,则记录当前鼠标下元素的节点信息,并递归获取当前节点的父元素,直到父元素的类名属性是窗口元素CoolWindow,最后拼接当前鼠标下元素的路径信息;
若获取的子元素不为空,则循环遍历子元素,找出包含当前拾取坐标的子元素,并重复步骤S22。
5.根据权利要求4所述的RPA场景下HTMLayout应用程序的元素定位方法,其特征在于,所述元素的操作过程包括如下步骤:
S24,根据步骤S23获得的元素路径信息,获取元素路径中的第一个元素节点窗口信息;
S25,若所述元素节点窗口信息在当前***运行中的窗口中,则查找当前窗口的所有子元素;
S26,获取所述元素路径信息中下一个节点的元素类型和属性信息,并从当前窗口的所有子元素中找出一个匹配的子元素;所述匹配的子元素的元素节点类型和属性信息,需与下一个节点的元素类型和属性信息都相同;
S27,若所有子元素都不匹配,则返回元素查找失败,并继续步骤S26,直到获取满足元素路径中最后一个节点的元素类型和属性信息,然后返回对应的元素类型和属性信息;
S28,根据返回的元素类型和属性信息,执行对应的操作。
6.根据权利要求1所述的RPA场景下HTMLayout应用程序的元素定位方法,其特征在于,步骤S1中,所述当前软件界面的窗口类名通过Windows应用程序接口获取。
7.RPA场景下HTMLayout应用程序的元素定位***,用于实现权利要求1-6任一项所述的RPA场景下HTMLayout应用程序的元素定位方法,其特征在于,所述RPA场景下HTMLayout应用程序的元素定位***包括;
服务注入模块,用于以用户所要操作的软件界面对象作为输入,并判断当前软件界面的窗口类名是否为HTMLayout窗体,如果为HTMLayout窗体,则获取HTMLayout软件的进程信息,并注入元素解析模块;
元素解析模块,用于对RPA元素进行拾取,获得所述RPA元素的种类信息、属性信息以及支持的操作动作信息;
通信模块,用于在RPA进程和HTMLayout进程中传输数据;
组件展示界面模块,用于展示拾取到的RPA元素信息并供用户确认。
8.根据权利要求7所述的RPA场景下HTMLayout应用程序的元素定位***,其特征在于,所述通信模块采用基于Socket的应用层通讯协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311407694.6A CN117130717B (zh) | 2023-10-27 | 2023-10-27 | RPA场景下HTMLayout应用程序的元素定位方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311407694.6A CN117130717B (zh) | 2023-10-27 | 2023-10-27 | RPA场景下HTMLayout应用程序的元素定位方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117130717A true CN117130717A (zh) | 2023-11-28 |
CN117130717B CN117130717B (zh) | 2024-02-13 |
Family
ID=88861335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311407694.6A Active CN117130717B (zh) | 2023-10-27 | 2023-10-27 | RPA场景下HTMLayout应用程序的元素定位方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130717B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118210731A (zh) * | 2024-05-17 | 2024-06-18 | 浙江实在智能科技有限公司 | 用于测试rpa中元素拾取功能的方法及*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488186A (zh) * | 2019-01-25 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN112182468A (zh) * | 2020-10-14 | 2021-01-05 | 北京新纽科技有限公司 | 一种兼容客户端界面元素与网页页面元素的定位和解析方法 |
CN114090155A (zh) * | 2021-11-17 | 2022-02-25 | 中国建设银行股份有限公司 | 机器人流程自动化界面元素定位方法、装置和存储介质 |
CN114461122A (zh) * | 2022-04-12 | 2022-05-10 | 杭州实在智能科技有限公司 | Rpa元素拾取同屏切换方法及*** |
CN115061679A (zh) * | 2022-08-08 | 2022-09-16 | 杭州实在智能科技有限公司 | 离线rpa元素拾取方法及*** |
US20230185869A1 (en) * | 2021-12-14 | 2023-06-15 | Sap Se | Screen capture hint and automated screen capture |
CN116630990A (zh) * | 2023-07-21 | 2023-08-22 | 杭州实在智能科技有限公司 | Rpa流程元素路径智能修复方法及*** |
CN116841537A (zh) * | 2023-04-26 | 2023-10-03 | 浙江大学 | 一种Linux平台UI元素拾取方法和*** |
WO2023197656A1 (zh) * | 2022-04-13 | 2023-10-19 | 上海弘玑信息技术有限公司 | 界面元素的定位方法、电子设备及存储介质 |
-
2023
- 2023-10-27 CN CN202311407694.6A patent/CN117130717B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488186A (zh) * | 2019-01-25 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN112182468A (zh) * | 2020-10-14 | 2021-01-05 | 北京新纽科技有限公司 | 一种兼容客户端界面元素与网页页面元素的定位和解析方法 |
CN114090155A (zh) * | 2021-11-17 | 2022-02-25 | 中国建设银行股份有限公司 | 机器人流程自动化界面元素定位方法、装置和存储介质 |
US20230185869A1 (en) * | 2021-12-14 | 2023-06-15 | Sap Se | Screen capture hint and automated screen capture |
CN114461122A (zh) * | 2022-04-12 | 2022-05-10 | 杭州实在智能科技有限公司 | Rpa元素拾取同屏切换方法及*** |
WO2023197656A1 (zh) * | 2022-04-13 | 2023-10-19 | 上海弘玑信息技术有限公司 | 界面元素的定位方法、电子设备及存储介质 |
CN115061679A (zh) * | 2022-08-08 | 2022-09-16 | 杭州实在智能科技有限公司 | 离线rpa元素拾取方法及*** |
CN116841537A (zh) * | 2023-04-26 | 2023-10-03 | 浙江大学 | 一种Linux平台UI元素拾取方法和*** |
CN116630990A (zh) * | 2023-07-21 | 2023-08-22 | 杭州实在智能科技有限公司 | Rpa流程元素路径智能修复方法及*** |
Non-Patent Citations (3)
Title |
---|
ARILD SAMUELSEN TØMMERVÅG;: "Leveraging the competition: Robotic Process Automation (RPA) enabling competitive Small and Medium sized Auditing Firms", 《2022 IEEE/SICE INTERNATIONAL SYMPOSIUM ON SYSTEM INTEGRATION (SII)》 * |
刘长勇;: "一种基于XML的用户界面实现方法", 福建电脑, no. 09 * |
易仁可等: "基于浏览器扩展的RPA***跨域DOM拾取与自动化方案", 《计算机科学》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118210731A (zh) * | 2024-05-17 | 2024-06-18 | 浙江实在智能科技有限公司 | 用于测试rpa中元素拾取功能的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN117130717B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10983660B2 (en) | Software robots for programmatically controlling computer programs to perform tasks | |
US5974430A (en) | Method for dynamically embedding objects stored in a web server within HTML for display by a web browser | |
US6851089B1 (en) | Software application and associated methods for generating a software layer for structuring semistructured information | |
US7448024B2 (en) | System and method for software application development in a portal environment | |
US6157936A (en) | Method for extending the hypertext markup language (HTML) to support a graphical user interface control presentation | |
CN117130717B (zh) | RPA场景下HTMLayout应用程序的元素定位方法及*** | |
Falahati | OpenNI cookbook | |
CN111666072A (zh) | 一种软件代码及文档机器人方法 | |
CN116302621A (zh) | 基于qt界面库的信创环境元素拾取方法及*** | |
CN116540914A (zh) | 一种RPA场景下Java应用程序的元素抓取方法 | |
Martens et al. | Diagnosing sca components using wombat | |
CN109521999A (zh) | 一种基于Unity3d的校园导游平台*** | |
US20230214310A1 (en) | Infrastructure to integrate an integrated development environment (ide) with game engines | |
US20230104522A1 (en) | Training conversational computing interfaces with traced programs | |
Sostek | EGAD: The Electron Grid of Aligned Documents | |
CN112732580A (zh) | 基于Unity的层级查找的自动化测试方法、装置及介质 | |
CN117014683A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN117827657A (zh) | 一种基于OpenHarmony应用的测试方法、***及电子设备 | |
CN116704158A (zh) | 一种基于虚拟引擎的标签动态更新*** | |
CN118093427A (zh) | 测试驱动方法及装置、页面测试方法及装置 | |
Kostaras et al. | Pro Apache NetBeans | |
Le | Enterprise Service Book Application for Multiple Mobile Platforms | |
加藤淳 | Integrated Graphical Representations for Development of Programs with Real-world Input and Output |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |