CN115509665B - 一种录制窗口中控件的方法、装置、介质及设备 - Google Patents
一种录制窗口中控件的方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN115509665B CN115509665B CN202211213074.4A CN202211213074A CN115509665B CN 115509665 B CN115509665 B CN 115509665B CN 202211213074 A CN202211213074 A CN 202211213074A CN 115509665 B CN115509665 B CN 115509665B
- Authority
- CN
- China
- Prior art keywords
- control
- recording
- target
- controls
- recorded
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 238000009826 distribution Methods 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 claims description 37
- 238000012216 screening Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 230000006978 adaptation Effects 0.000 description 7
- 238000004801 process automation Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000000889 atomisation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- 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)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种录制窗口中控件的方法、装置、介质以及设备,所述方法包括:以参照物所在位置为起点依据目标录制移动步长和目标录制移动方向查找至少一个目标控件,其中,所述目标控件和与所述参照物对应的控件在所述窗口上的排布需满足目标空间布局特征;根据所述目标控件得到录制文件,其中,所述录制文件用于定位与所述参照物对应控件同级别的一个或多个控件。由于本申请的一些实施例在对窗口进行录制时考虑了控件在界面上的空间分布位置,因此可以更好适配针对相似图形的多个控件组成的被录制对象的录制操作,提升技术方案的通用性。
Description
技术领域
本申请涉及机器人流程自动化领域,具体而言本申请实施例涉及一种录制窗口中控件的方法、装置、介质以及设备。
背景技术
目前众多企业将降低人力成本,提高人员效率作为核心发展诉求,利用智能化、自动化技术赋能改造现有的企业经营、管理和办公模式,将简单工作交由机器来做,成为新的趋势,并将给经济社会的发展带来新的动能。
RPA(机器人流程自动化)技术是一种流程自动化技术,通过RPA软件提供的流程编辑器,可以设计和配置出能够自动执行的业务操作流程,并封装成“软件机器人”或“虚拟机器人”的形态,部署到生产环境和业务***上执行,模拟人在计算机上的一系列操作。例如,利用机器人模拟人工完成鼠标移动、鼠标点击、键盘输入、打开网页、获取页面信息、创建文件、输入文件内容、保存文件、删除文件等等,基于上述原子化的操作,实现跨***的数据集成、汇总和分析,从而替代企业中普遍存在的大量简单、繁琐、重复的工作,并且能够在不进行大规模***改造的情况下,解决不同部门、不同***间的数据隔离和业务隔离现象,进一步提高流程处理效率、提高业务操作准确性、降低流程处理成本,最终满足企业的降本增效和业务转型的诉求。
业内对于界面自动化技术,普遍基于当前界面逻辑层次结构或类型来对界面的元素控件进行解析和存储。然而,部分软件界面的逻辑层次(即大的界面套小的界面,小的界面套多个控件,容器控件可以套更小的子控件)或类型与用户可视的类型不一致的情况比比皆是,因此导致现有技术方案的通用性很低且参数化较困难。
发明内容
本申请实施例的目的在于提供一种录制窗口中控件的方法、装置、介质以及设备,本申请的实施例以某个控件(例如,该控件属于后续机器人操作的控件或者与其同级的控件)所在位置为参照点,采用空间侦探方式,识别和归类界面上符合原始设定的布局(即目标空间布局特征)、方向(即目标录制移动方向)以及间隔(即目标录制移动步长)等约束条件的控件,站在用户视角来看待控件布局,极大的降低了现有技术在界面元素录制时对界面上控件的逻辑层级和类型的束缚,且本申请的一些实施例具有自定义的扩展功能(即支持参数化)提升技术方案的通用性,且本申请的一些实施例对于特定领域的布局可以时间零代码适配。
第一方面,本申请实施例提供一种录制窗口中控件的方法,所述方法包括:以参照物所在位置为起点依据目标录制移动步长和目标录制移动方向查找至少一个目标控件,其中,所述目标控件和与所述参照物对应的控件在窗口上的排布满足目标空间布局特征;根据所述目标控件得到录制文件,其中,所述录制文件用于定位与所述参照物对应控件同级别的一个或多个控件。
由于本申请的一些实施例在对窗口进行录制时考虑了控件在界面上的空间分布位置,因此可以更好适配针对相似图形或不相似图形的多个控件组成的被录制对象的录制操作,提升技术方案的通用性。本申请的实施例根据控件在控件位置上的布局情况进行录制,例如,针对图形不相似的多个控件只需要它们的中心点(或其它几何点,比如不同的对齐方式,左对齐等等)在一个圆圈上即可。
在一些实施例中,所述根据所述目标控件得到录制文件,包括:记录与所述参照物对应控件的控件信息,并记录所述目标控件的控件信息,得到所述录制文件。
本申请的一些实施例通过录制即记录与参照物(机器人操作时潜在感兴趣操作对象)对应控件和该控件满足同一布局的多个控件的控件信息完,与相关技术在录制过程中未考虑控件的空间布局特征仅记录与参照物对应的控件的控件信息相比实现了后续回放时同时命中多个被选控件的技术目的,提升技术方案的通用性且由于这些控件还需要满足控件布局特征因此通过用户观察即可应用该技术方案实现了机器人流程自动化的低代码化。
在一些实施例中,所述根据所述目标控件得到录制文件,包括:获取所述目标控件和与所述参照物对应控件的逻辑祖先控件,得到第一逻辑祖先控件;根据所述第一逻辑祖先控件得到所述录制文件。
为了节省存储空间,本申请的一些实施例还借助逻辑祖先控件来生成录制文件,与存储所有相关控件的控件信息相比引入逻辑祖先控件可以降低数据存储量。
在一些实施例中,所述根据所述第一逻辑祖先控件得到所述录制文件,包括:通过比对多个逻辑祖先控件得到公共祖先控件,其中,所述多个逻辑祖先控件包括所述第一逻辑祖先控件,所述多个逻辑祖先控件中的各逻辑祖先控件分别与不同参照物对应,或者与不同的目标录制移动方向对应,或者与不同目标录制移动步长对应;获取所述公共祖先控件包括的各级子控件相对于所述公共祖先控件的层级信息,其中,与所述参照物对应的控件和所述目标控件属于所述各级子控件中的子控件;至少将与所述公共祖先控件对应的控件信息和所述层级信息作为所述录制文件中的内容。
本申请的一些实施例对于存在多个逻辑祖先控件的场景还进一步获取多个逻辑祖先控件的公共祖先控件,进一步降低录制文件的数据量。
在一些实施例中,在所述以参照物所在位置为起点依据目标录制移动步长和目标录制移动方向查找至少一个目标控件之前,所述方法还包括:依据待录制控件在所述窗口上的布局特征获取目标录制策略,其中,所述目标录制策略包括:所述目标录制移动步长、所述目标录制移动方向以及所述目标空间布局特征,所述待录制控件包括与所述参照物对应的控件以及所述目标控件,所述布局特征为用户可视的所述待录制控件在所述窗口上的分布特征。
由于本申请的实施例的所述待录制控件在所述窗口上的布局是可以依据用户视角所观察到的特征,因此与相关技术必须强绑定窗口以及控件的技术方案相比,本申请的实施例通用性更强只要在窗口上外观特征相似的多个待录制对象都可以应用本申请的技术方案,通用性更强。
在一些实施例中,所述依据待录制控件在所述窗口上的布局特征获取目标录制策略包括:根据所述待录制控件在所述窗口上的布局设置多个录制项得到所述目标录制策略,其中,所述录制项包括:被录制控件的空间布局特征、录制移动方向、表格对齐方式、录制移动步长以及录制次数;或者,选择默认录制策略作为所述目标录制策略。
本申请的一些实施例既可以选择默认录制策略作为本次录制的目标录制策略,也可以通过自定义方式来获取本次录制的目标录制策略,满足不同空间布局的待录制控件的录制需求,提升技术方案的通用性。
在一些实施中,所述被录制控件的空间布局特征包括:线性、矩形、圆形以及自定义矢量图谱中的至少一种,所述目标空间布局特征是从所述被录制控件的空间布局特征中选取得;或者,所述录制移动方向包括:沿参照物横向移动、沿参照物纵向移动,沿参照物向横向和纵向分别移动和沿参照物向自定义函数方向移动中的至少一种,所述目标录制移动方向属于所述录制移动方向中选取得。
本申请的一些实施例提供了多个设置项,且为每个设置项配置了多个选项,以满足用户所观察到的待录制控件的布局的差异性需求,且便于实施人员根据客户电脑上应用软件的多样性进行个性化适配。
在一些实施例中,所述参照物为表格,其中,所述录制项还包括:表格对齐方式,所述表格对齐方式包括:左上对齐或者中心对齐,所述起点是通过所述表格对齐方式确定的。
本申请的一些实施例对于表格类的待录制控件还可以根据表格对齐方式来设置录制过程,提升录制过程查找目标控件的速度以及准确度。
在一些实施例中,所述参照物的个数为多个,则所述方法包括:对各参照物分别重复所述获取录制文件的过程,得到多个所述录制文件。
本申请的一些实施例还能满足多参照物场景的录制需求,提升技术方案通用性。
在一些实施例中,所述目标录制策略还包括目标录制次数,在所述根据所述目标控件得到录制文件之后,所述方法包括:若确认录制总次数小于所述目标录制次数时,则更新所述目标录制策略重复获取所述录制文件的过程直至达到所述目标录制次数。
本申请的一些实施例中还可以通过选定的录制次数来多次录制待录制控件提升技术方案的使用场景,满足更多的差异化需求。可以理解的是,录制文件只是载体,录制多次是为了精准匹配对应的策略,比如圆形,一般需要三个参照物才能确定一个圆形,最少策略也需要两个参照物,一个圆心,一个圆形边上一点。
在一些实施例中,所述方法还包括:接收输入的参数化信息并获取所述录制文件,其中,所述参数化信息用于指示本次操作的类型,所述类型包括:输出文本内容;通过所述录制文件得到所述公共祖先控件包括的所述各级子控件的路径信息;对所述参数化信息进行解析得到目标操作控件和目标操作;根据所述路径信息定位所述目标操作控件的位置;根据所述位置在窗口上找到所述目标操作控件并完成针对所述目标操作控件的所述目标操作。
本申请的一些实施例通过回放来完成参数化过程得到具体的操作结果。
在一些实施例中,所述通过所述录制文件得到所述公共祖先控件包括的所述各级子控件的路径信息,包括:通过所述录制文件得到与所述各级子控件对应的关联路径,其中,所述关联路径用于表征从所述公共祖先控件到达相应子控件所经过的逻辑分层和偏移位置;所述根据所述路径信息定位所述目标操作控件的位置,包括:根据所述关联路径得到所有备用的控件句柄,其中,所述控件句柄用于表征所述所有各级子控件在内存的地址;根据所述目标空间布局特征从所述所有备用的控件句柄中筛选出至少部分控件句柄,得到目标控件句柄;通过所述目标控件句柄得到所述目标操作控件的位置。
本申请的一些实施例中在回放时通过目标控件布局特征来筛选潜在的操作空间,提升数据处理速度。
在一些实施例中,所述参照物为表格,所述方法包括:将参数化信息和所述录制文件传递到机器人中,其中,所述参数化信息为获取目标表格中的文本内容;根据所述录制文件得到关联路径,其中,所述关联路径用于表征从所述公共祖先控件到达相应子控件所经过的逻辑分层和偏移位置;通过所述机器人从所述录制文件中查询所述公共祖先控件,再根据所述关联路径找到所有备选控件;按照所述目标空间布局特征对所述备选控件进行筛选过滤后,得到一个结构化的控件句柄;根据所述参数化信息和所述结构化的控件句柄获取所述目标表格中所有文本内容。
本申请的一些实施例还通过机器人执行回放过程完成针对表格内容的读取操作。
在一些实施例中,在所述以参照物所在位置为起点依据目标录制移动步长和目标录制移动方向查找至少一个目标控件之前,所述方法还包括:监控鼠标在所述窗口上的移动,并在录制人员发出录制触发指令时确认到达所述参照物,其中,所述录制触发指令在所述窗口上的发出位置用于表征所述操作人员在本次录制中所选择的所述参照物。
本申请的一些实施例通过引入录制触发指令来即时启动对具体的录制,即开始记录查找到的控件的控件信息。
第二方面,本申请的一些实施例中提供一种录制窗口中控件的装置,所述装置包括:目标控件获取模块,被配置为以参照物所在位置为起点依据目标录制移动步长和目标录制移动方向查找至少一个目标控件,其中,所述目标控件和与所述参照物对应的控件在所述窗口上的排布需满足目标空间布局特征;录制文件获取模块,被配置为根据所述目标控件得到录制文件,其中,所述录制文件用于定位与所述参照物对应控件同级别的一个或多个控件。
第三方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任意实施例所述的方法。
第四方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任意实施例所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为相关技术的流程设计图;
图2为相关技术提供的A软件界面的界面信息示意;
图3为相关技术提供的B软件界面的界面信息示意;
图4为本申请实施例提供的录制窗口中控件的方法的流程图;
图5为本申请实施例提供的根据目标录制策略进行录制的过程示意图;
图6为本申请实施例提供的录制图3所示窗口中控件的方法示意图;
图7为本申请实施例提供的图3界面上容器控件和子控件的层级展开图;
图8为本申请实施例提供的录制窗口中控件的装置的组成框图;
图9为本申请实施例提供的电子设备组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
RPA技术是通过对界面布局和代码的解析,来实现和业务***的交互的。例如,通过一些桌面应用自动化工具提供的API(Application Programming Interface,应用程序接口)接口实现操作***中的鼠标键盘各类操作;通过解析浏览器页面的CSS(CascadingStyle Sheets,层叠演示表)结构和JavaScript(一种开发网页页面的脚本语言)代码等实现浏览器页面元素,如按钮、输入框、文本行等的定位和操作;通过分析办公软件的源代码实现软件界面中元素的定位和操作。
针对具体应用场景相关技术的机器人流程自动化需要借助设计器来设计一系列人工操作。例如,请参看图1,针对登录淘宝搜索618礼物可以进行流程设计,该设计结果包括如下操作:S101,打开浏览器;S102,输入网址;S103,登录账号和密码;S104,找到搜索框;S104,在搜索框中输入“618礼物”;S105,点击搜索按钮。可以理解的是,针对与图1的应用场景本申请的一些实施例会涉及这些操作(图1的六个步骤对应六个操作)中的任意一个操作的录制和回放,通过录制过程记录人工执行相应操作的过程通过回放由机器人来重复人工的操作。例如,采用本申请一些实施例获取录制文件并通过回放来使得机器人自动实现向搜索框中输入“618礼物”文案的操作。
下面结合图2和图3示例性阐述现有技术的缺陷。
结合背景技术部分的描述可知,业内对于界面自动化技术,普遍基于当前界面逻辑层次结构或类型来进行解析和存储。然而,部分软件界面的逻辑层次(即大的界面套小的界面,小的界面套多个控件,容器控件可以套更小的子控件)或类型与用户可视的类型不一致的情况比比皆是。以windows平台下微软辅助功能技术框架为例,大多根据控件的role(类型)来做区别处理。
图2为windows平台的医药软件客户端,该客户端属于某个集团的患者管理***软件。图2的软件对于界面元素布局比较混乱,从外观看似该图中的列表容器控件210像是一个表格容器类控件,实际上通过窗口控件查看工具(例如,inspect.exe工具)查看控件信息,并未在图2中发现有类型值为“role=0x18”的表格类型容器控件,而是发现了控件类型role=0xa的控件,该类型表征图2是一个通用的窗口类型,所有windows下客户端任何一个界面上都有这个类型的控件,不能作为表格样式的容器类控件使用。
不仅如此,在图2的界面开发代码中在0xa控件所包含的子孙序列控件中,也没有找到关于行(role=0x1c)或列(role=0x1b)等控件信息,这样对于列表中每个控件该隶属于第几行第几列,就不能直接计算了,对于后续的参数化代码化回放就无法实现了。目前,一种应急方案适配上述集团患者管理***软件的这一个表格,做了两个特殊化处理,一个是根据当前表格做在窗口(窗口类名=“pbdw115”)做标识,进行甄别,启动特殊处理;另一个是按照某个子控件的名称来做区分(name=“compute_1”)一行的开始,紧邻着的即为同一行控件。采用此方案,仅能适用于特定窗口(窗口类名=“pbdw115”),适用面极小,甚至是软件升级后,就不能再适用了;对于行列布局更是无法扩展到其它软件、其它界面上使用,研发参与编码较多,与RPA(Robotic Process Automation,机器人流程自动化)的低代码适配无疑是一个风险点。这也是本申请实施例着力需要解决的两大问题:一个是普适性,一个是低代码适配性。
图3是在Window平台下采用MFC框架进行开发的带界面程序,其中有一个list类型控件(role=0x21),窗口类名(“SysListView32”)。这个列表包含多个列表项,每个列表项包含了多个子控件(role=0x29),这样就呈现的出来二维表格属性,用户视觉和实际类型差异较大,用户实际录制当前控件时,希望能够获取到整个列表的内容(应该是一个含有行列概念的两维文本数组),但实际上获取的却是一维的文本数组。
目前,一种特例化的处理方式是,判断到当前的列表属性是否具备网格属性(控件属性:IsGridItemPatternAvailable()==true),然后通过UIA::Normalize(微软UIA技术架构封装,用于捕获祖先控件是否存在某个特定类型)获取列表(role=0x21)容器,然后将录制的列表命令(instruction=“selectItem”),改为获取表格单元的命令(instruction=“tableCell_clickControl”)。这么做能够一定程度上解决一部分列表的操作情况,研发有一定的适配工作,且受限于控件部分特殊属性。
不难理解的是,采用相关的技术方案,针对图3的B软件问题,只能针对内部的简单控件进行录制,要么对于某些项目中碰到的场景进行特殊化处理,根据特定的应用窗口类名区分,按照列表项来对外输出,列表项内部的子控件则序列化为当前列表项的字符串,对外统一输出为一维字符串数组。
可以理解的是,上述处理方式只是局部缓解了问题,存在如下诸多的缺陷:1)维护和开发成本随着软件数量的放大是成正比的,形成了长尾维护适配问题。2)对于解决用户面临的问题,解决方案总是要滞后一段时间。3)另外,可能对于一些杂乱无章的逻辑层次,无法得到很好的解决。
需要说明的是,在图3的B软件界面上一个看似二维列表的容器控件(也是一种复合结构控件,例如,平时看到的资源管理器文件详情界面就是其中一种),然而其在逻辑层次上是一个list(列表类型role=0x21),它包含了列表项(列表类型的子控件类型),列表项中又包含了多种简单控件(例如文本类型role=0x2a),这就跟图2的A软件上的类型相同,但是逻辑层次不同,产生了类型分歧问题。从用户角度,若采用机器人流程自动化的目的在于获取图2的A软件和图3的B软件中的某个子控件的文本内容,直观上B软件界面更像一个表格,控件文本内容应该是两维的字符串,对于A软件上的文本内容应该是一维的字符串。
也就是说,相关技术在对图2或图3等的窗口进行录制时,需要对软件窗口,控件的行列索引等进行强绑定,因此录制过程的适配性很低。需要说明的是,与相关技术不同的是,本申请的一些实施例以控件所在位置为参照点采用空间侦探方式,识别和归类窗口界面上符合原始设定的布局(即目标空间布局特征)、方向(即目标录制移动方向)以及间隔(即目标录制移动步长)等约束条件的控件,站在用户视角来看待控件布局,极大的降低了现有的逻辑层级和类型的束缚,明显提升技术方案的通用性。
下面结合图4示例性阐述本申请一些实施例的由RAP工具(图中未示出)执行的录制窗口中控件的方法。
如图4所示,本申请实施例提供一种录制窗口中控件的方法,该方法包括:S201,以参照物所在位置为起点依据目标录制移动步长和目标录制移动方向查找至少一个目标控件。S102,根据所述目标控件得到录制文件,其中,所述录制文件至少用于定位与所述参照物对应控件同级别的一个或多个控件。可以理解的是,录制文件至少用于存储S201得到的录制信息。
需要说明的是,在本申请的一些实施例中,在开始执行S201之前还需要根据用户所观察的待录制控件在窗口上所覆盖区域的形状特征来获取目标录制策略。例如,在本申请的一些实施例中,在执行S201之前,所述录制窗口中控件的方法还包括:依据待录制控件在所述窗口上的布局特征获取目标录制策略,其中,所述目标录制策略包括:所述目标录制移动步长、所述目标录制移动方向以及所述目标空间布局特征,所述待录制控件包括与所述参照物对应的控件以及所述目标控件,所述布局特征为用户可视的所述待录制控件在所述窗口上的分布特征。在本申请的一些实施例中,录制文件是一个自定义格式的文件,该自定义格式的文件可以是经过加密的文件,在实际应用时需要解密,在本申请的一些实施例中,各控件的控件信息可以是一个JSON字符串的文本内容。
可以理解的是,在本申请的一些实施例可以通过增加录制次数来获得多个录制文件。也就是说,在本申请的一些实施例中,所述目标录制策略还包括设置录制次数,在执行S202所述根据所述目标控件得到录制文件之后所述方法包括:若确认录制总次数小于所述录制次数时,则更新所述目标录制策略重复获取所述录制文件的过程直至达到所述录制次数。
下面示例性阐述上述步骤的实现过程。
在本申请的一些实施例中,所述依据待录制控件在所述窗口上的布局特征获取目标录制策略示例性包括:根据所述待录制控件在所述窗口上的布局设置多个录制项得到所述目标录制策略,其中,所述录制项包括:被录制控件的空间布局特征、录制移动方向、表格对齐方式、录制移动步长以及录制次数;或者,选择默认录制策略作为所述目标录制策略。
可以理解的是,若被录制控件(例如,与参照物对应的控件)为表格类控件,则录制项还可以进一步包括表格对齐方式,例如,该表格对齐方式包括:左上对齐或者中心对齐。需要说明的是,S201涉及的所述起点是通过所述表格对齐方式确定的。
下面示例性阐述各录制项包括的多种备选项。
录制项包括的被录制控件的空间布局特征示例性包括:线性、矩形、圆形以及自定义矢量图谱中的至少一种。需要说明的是,在本申请的一些实施例中,目标录制策略不是选择的默认录制策略,此时目标录制策略所包括的所述目标空间布局特征是从所述被录制控件的空间布局特征中选取得,也就是说目标空间布局特征是属于所述被录制控件的空间布局特征的一个或多个。例如,目标空间布局特征为圆形。
可以理解的是,对应到窗口上的多个控件的排布特征,上述线性可以包含所有的一维列表、一级菜单等上下布局或左右排布的控件序列。上述矩阵可以包含所有的表格样式或自定义非标准表单等。也就是说,本申请的一些实施例将被录制控件的布局抽象为一个函数或一个序列函数关系,其中,线性函数适用于线性布局,矩阵是若干线性函数关联,圆形有对应的二次函数关联;自定义矢量图谱根据用户自定义函数序列来做匹配。需要说明的说,本申请一些实施例的布局策略不仅限于横向布局的控件序列、纵向的类似表格或菜单样式的控件序列、矩阵布局的类似表格的空间布局控件序列,还可以包括圆形、三角形、梯形、五边形、六边形等常见布局样式以及特殊的例如日历布局、色卡布局等等,本申请的实施例不限定布局的具体形式本领域技术人员可以根据控件的排列形式定义差异化的布局函数。不难理解,本申请的一些实施例在录制控件时可以预制与控件空间布局相关的条件或策略。
录制项包括的录制移动方向包括:沿参照物横向移动、沿参照物纵向移动,沿参照物向横向和纵向分别移动和沿参照物向以自定义方向函数移动中的至少一种。需要说明的是,在本申请的一些实施例中,目标录制策略不是选择的默认录制策略,此时目标录制策略所包括的所述目标录制移动方向是从所述录制移动方向中选取得,也就是说目标录制移动方向属于所述录制移动方向中的一个或多个。例如,目标录制移动方向为沿参照物向横向和纵向分别移动。
录制移动步长可以为经验值,例如,录制移动步长的单位为像素。结合该参量说明本申请的录制过程为:通过目录录制移动步长可以指定在窗口上查找目标控件时每次移动多少个像素的距离,然后确定该距离处是否存在目标控件,若有就记录该目标控件的控件信息,得到录制文件或者还可以通过控件信息来获取逻辑祖先控件进而根据逻辑祖先控件得到录制文件。
需要说明的是,S201是在上述窗口上查找所述目标控件的。S201中涉及的所述目标控件和与所述参照物对应的控件在窗口上的排布满足目标空间布局特征。本申请的一些实施例通过空间布局特征来查找相关被录制控件,而不是像现有技术那样根据界面类型和逻辑层级结构来录制控件。
可以理解的是,在本申请的一些实施例中,S201涉及的所述参照物的个数为多个,则所述录制窗口中控件的方法包括:对各参照物分别重复所述获取录制文件的过程,得到多个所述录制文件。例如,目标控件布局特征表征多个待录制控件组成圆形时,则在本申请的一些实施例中会在该圆形区域选择三个参照物完成录制。
需要说明的是,在本申请的一些实施例中,直接记录多个控件(包括与参照物对应的控件和目标控件)的控件信息完成录制得到录制文件。而在本申请的另一些实施例中,为了进一步节省存储空间并增加模糊匹配的命中率,在本申请的一些实施例中还可以记录公共祖先控件(例如,与参照物对应的控件和目标控件对应的逻辑祖先控件)相关的信息完成录制。
例如,在本申请的一些实施例中,S202示例性包括:查找与所述参照物对应控件和所述目标控件的第一逻辑祖先控件;根据所述第一逻辑祖先控件得到所述录制文件。需要说明的是,在本申请的一些实施例中,只有一个逻辑祖先控件,则将该第一逻辑祖先控件的控件信息和该第一逻辑祖先控件包括的各级子控件的层级特征属性值作为录制文件中的内容。在本申请的一些实施例中,可能由于录制时选取多个移动方向,多个移动步长,或者选择多个参照物而导致存在多个逻辑祖先控件,此时为了尽可能多的捆绑潜在的多个被查找控件会以这些逻辑祖先控件的公共祖先控件来生成录制文件,该录制文件包括公共祖先控件的控件信息以及该公共祖先控件包括的各级子控件的层级特征。
例如,在本申请的一些实施例中,S202所述根据所述逻辑祖先控件得到所述录制文件示例性包括:通过比对多个逻辑祖先控件得到公共祖先控件,其中,所述多个逻辑祖先控件包括上述第一逻辑祖先控件,所述多个逻辑祖先控件中的各逻辑祖先控件分别与不同参照物对应,或者与不同的目标录制移动方向,或者与不同目标录制移动步长对应;根据所述逻辑祖先控件得到公共祖先控件并得到与所述公共祖先控件包括的各级子控件相对于所述公共祖先控件的层级信息,其中,所述与参照物对应的控件和所述目标控件属于所述各级子控件中的子控件;至少将与所述公共祖先控件对应的控件信息和所述层级信息作为所述录制文件中的内容。
下面结合图5示例性阐述根据公共祖先控件得到录制文件的过程。
如图5所示,本申请一些实施例提供的录制窗口中控件的方法示例性包括:
第一步,设定录制策略(即得到目标录制策略)。
具体地,选择空间录制模式并从多个录制项中各选择一项得到目标录制策略或者直接选择默认录制策略作为目标录制策略。
正如上文所记载的多个录制项包括:多种布局选项(即被录制控件的空间布局特征)、多种方向选项(即录制移动方向)、多种对齐方式选项(即表格对齐方式)、间隔(即录制移动步长,例如该值为经验值)以及录制次数。
例如,多种布局选项示例性包括:线性、矩阵、圆形或者自定义矢量图谱。多种方向选项包括:横、纵、矩阵或者自定义方向函数。多种对齐方式包括:上、左、下、右、水平、中心或者垂直中心;间隔:一半高度、一半宽度或者默认值。录制次数的多个选项包括:1次、2次或者n次,其中,n为大于2的整数。
需要说明的是,上述的各录制项包括的具体选项还可以根据具体场景进行补充,本申请实施例并不限定各录制项具体包括哪些选项。
例如,默认策略的各录制项被具体化为:从多种布局选择中选择矩阵(即矩阵为该示例中的目标空间布局特征),从多个方向选项中选择矩阵(即矩阵为该示例中的目标录制移动方向),从多种对齐方式中选择垂直中心对齐,将间隔设置为默认间隔像素数(即默认间隔像素数为该示例中的目标录制移动步长),设置的录制次数为1。
例如,自定义录制策略即从上述多种录制项包括的各项录制项中分别选择一项,组成目标录制策略,针对一次具体录制过程选中的各项即为目标项。
假设在该示例中选择默认录制策略作为目标录制策略继续执行后续步骤。
第二步,录制控件。
需要说明的是,录制一个控件即记录一次人工的操作(例如,该操作包括:点击鼠标、按下键盘等操作),录制的信息用于机器人代替人工操作,例如,通过机器人帮忙点击的界面控件。
可以理解的是,在启动录制过程时,底层技术会监听当前***中鼠标的所有消息和键盘等输入设备产生的消息,例如,当用户按下指定的快捷键(例如,点击“ctrl+鼠标左键”)时底层会将当前的鼠标所在位置的控件信息记录下来,这样就完成了针对参照物对应控件的录制。需要说明的是,在本申请的一些实施例中,当启动录制后只有针对与参照物对应控件的录制需要按下快捷键进行触发,而对于其它目标控件或者逻辑祖先等控件的录制并不需要触发,而是由***自动根据设置的目标录制策略完成针对各相关控件的控件信息提取自动完成这些控件的录制。
例如,本申请的一些实施例的录制过程包括如下两个子步骤。
第一子步,开始录制控件。
例如,若用户按下ctrl+鼠标左键后,标记当前控件(即与参照物对应的控件),接下来以当前控件的空间位置(left、top、right、bottom)矩形区间作为参照物,进入第二子步。
需要说明的是,当前控件的空间位置可以从该控件的控件信息中读取,例如,该控件信息是界面开发代码或者源代码中所记载的内容。
第二子步,查询与参照物对应控件属于同一布局(例如,两个控件满足目标空间布局特征且属于同一级控件)下的控件,得到目标控件。
例如,根据预先设置的目标空间布局特征和目标录制方向,以参照物的对齐方式(即具体表格对齐方式)为原点,以目标录制移动步长为距离,录制一个控件,并计算该控件与参照物对应控件最近的共同的逻辑祖先控件(即第一路基祖先控件),记录该共同的逻辑祖先控件的子孙索引序列(即记录各子孙控件在所述逻辑祖先控件中的层级特征值),录制数加一。
需要说明的是,最近的共同的逻辑祖先控件的获取过程示例性包括:比对与参照物对应控件和目标控件各自对应的索引序列即可,比如:序列一=[1,1,2]和序列二=[1,1,3],那么这两个序列的公共索引为[1,1]。逻辑祖先控件就是指包含当前控件的父控件,以及父控件的父控件,依次类推,即为逻辑祖先控件。第二子步的子孙索引序列的含义为:一个父控件包含多个子控件,逻辑祖先控件包含多个子控件,子控件包含多个子控件,依次类推,即为子孙控件序列中各子孙控件,该处的子孙索引序列用于记录各子孙相对于公共祖先控件的层级信息。
第三步,判读是否完成录制控件数。
若录制数小于连续录制数,则调整录制移动方向或录制移动步长继续执行第二子步的录制过程,否则进入第四步。
第四步,匹配祖先控件AA。
也就是说,比对由于多次录制或者由于分别对多个参照物录制等情况导致的多个逻辑祖先控件,查询多个逻辑祖先控件的公共的一个祖先控件AA(即公共逻辑祖先控件的一个示例),组合该公共祖先控件AA的所有子孙索引序列BB(即所有子孙索引序列首尾相接即可)。将控件AA作为录制控件,记录子孙索引序列,以及当前拓扑策略和相关控件的其它信息,进入以下回放步骤。
需要说明的是,当前拓扑策略类似空间拓扑概念,在一个目标录制移动方向可能存在多个满足要求的目标控件,这就需要本申请的一些实施例能够依照前面的间隔(即目标录制移动步长)、方向(目标录制移动方向)继续处理,直到在该方向上查找不到满足要求的目标控件。上述相关控件的其它信息包括控件的控件信息、程序进程和当前位置屏幕截图等信息。
不难理解的是,在本示例中以参照物在窗口上对应额空间矩形上任一点作为比对参照点,进行拓扑侦测相邻控件,从而确认祖先控件。
第五步,返回祖先控件AA及相关信息。
第六步,录制结束。
可以理解的是,本申请的一些实施例对于复杂的布局(例如,圆形)也可以设置多个参照物,在完成一个参照物的录制后,可以叠加新的其它布局策略(即可能需要设计多个不同的目标录制策略)组合成一个复合目标录制策略,分别依据各个目标录制策略完成录制过程得到录制文件。
下面示例性阐述本申请的一些实施例如何根据录制文件进行回放。
在本申请的一些实施例中,所述录制窗口中控件的方法还包括:
第一步,接收输入的参数化信息并获取所述录制文件,其中,所述参数化信息用于指示本次操作的类型,所述类型包括:输出文本内容。
第二步,通过所述录制文件得到所述公共祖先控件包括的所述各级子控件的路径信息。
例如,通过所述录制文件得到与所述各级子控件对应的关联路径,其中,所述关联路径用于表征从所述公共祖先控件到达相应子控件所经过的逻辑分层和偏移位置。
第三步,对所述参数化信息进行解析得到目标操作控件和目标操作。
第四步,根据所述路径信息定位所述目标操作控件的位置。
例如,根据所述关联路径得到所有备用的控件句柄,其中,所述控件句柄用于表征所述所有各级子控件在内存的地址;根据所述目标空间布局特征从所述所有备用的控件句柄中筛选出至少部分控件句柄,得到目标控件句柄;通过所述目标控件句柄得到所述目标操作控件的位置。
第五步,根据所述位置在窗口上找到所述目标操作控件并完成针对所述目标操作控件的所述目标操作。
下面示例性阐述利用机器人通过回放得到表格中文本内容的方法。
在本申请的一些实施例中,所述参照物为表格,所述方法包括:将参数化信息和所述录制文件传递到机器人中,其中,所述参数化信息为获取目标表格中的文本内容;根据所述录制文件得到关联路径,其中,所述关联路径用于表征从所述公共祖先控件到达相应子控件所经过的逻辑分层和偏移位置;通过所述机器人从所述录制文件中查询所述公共祖先控件,再根据所述关联路径找到所有备选控件;按照所述目标空间布局特征对所述备选控件进行筛选过滤后,得到一个结构化的控件句柄;根据所述参数化信息和所述结构化的控件句柄获取所述目标表格中所有文本内容。
也就是说,本申请一些实施例的回放过程示例性包括:根据祖先控件AA(即录制的容器控件)进行回放,根据子孙索引换算为关联路径(指从容器控件到达界面控件经过的逻辑分层和偏移位置),从而定位到回放的子孙控件;回放找到容器控件AA和关联路径下所有备用的控件句柄;按照录制时制定的录制策略所包括的目标空间布局特征,对控件位置进行筛选,结构化控件句柄;按照设计时参数化信息(例如:参数化命令,获取当前布局所有控件的名称;获取当前布局所有控件的空间位置等等),整理结构化数据内容,统一序列化返回。至此完成根据录制文件的回放过程。
需要说明的是,在本申请的一些实施例中,在执行S201之前,所述方法还包括:监控鼠标在所述窗口上的移动,并在录制人员发出录制触发指令时确认到达所述参照物,其中,所述录制触发指令用于表征所述操作人员在本次录制中所选择的所述参照物。
下面结合图2和图3示例性阐述本申请实施例的技术方案。
示例1
在用户视角上,图2的界面上的表格是排列整齐的、类似矩阵的单元格序列,因此可以根据观察到的这些来制定目标录制策略。图2的相邻两个单元格,要么横向一定间隔,要么纵向一定间隔,且图2的相邻单元格的对齐方式是有限集合(例如:左对齐、居中对齐等)。实施人员在设计自动化流程时,选择本申请上述实施例记载的录制方法来录制图2的控件,采用本申请实施例的录制方法示例性包括:
首先,根据图2的患者管理软件中的表格样式,选择空间录制模式,设定目标录制策略,该目标录制策略对应的各录制项的内容被具体化为(即目标录制策略的内容):被录制控件的空间布局特征为矩阵、表格对齐方式为左上对齐、录制移动步长为间隔默认6像素、录制移动方向为从参照物向上、向下、向左和向右等等。
其次,点击开始录制控件,实施人员按下ctrl+左键后,标记当前控件为参照物。从空间上,以参照物四周为边界,向四个方向(下上右左)间隔查询存在的控件,若找到两个相近控件(即与参照物对应的控件和一个目标控件),则停止查找,比对两个控件的公共祖先控件(即图2的容器控件),同时记录下子孙索引信息和祖先控件信息得到录制文件,返回到流程设计节点中,用于后续做回放工作。
然后,在录制好的流程节点上,配置上需要参数化的信息,例如,获取当前表格所有文本内容,将命令代码化为(instruction=“getAllItem”)。
在生产环境中,运行RPA流程时,当运行到了空间捕获节点时,将参数化信息和录制的容器控件一并传递到机器人中,机器人根据当前信息先查询到容器控件(作为公共祖先逻辑控件的一个示例),再根据关联路径找到所有备选控件,按照布局策略进行筛选过滤后,生成一个结构化的控件句柄。然后根据参数化信息,返回对应控件的名称(property=“name”),至此就获取了表格中所有文本内容。
需要说明的是,对于windows窗口上列表控件信息包括但不限于以下内容:相对索引:Index;窗口类名称:WinClass;名称:Name;值:Value;角色:Role;状态State;默认操作:DefaultAction;描述Description;帮助信息:Help;快捷键:KeyboardShortcut;展现样式:Style;展现扩展样式:ExStyle;空间位置坐标:Location;屏幕坐标:Left;屏幕坐标:Top;屏幕坐标:Width;屏幕坐标:Heigh。参数化信息用于适配后续被处理界面与录制时界面发生变更的情形,通过引入参数化信息可以实现针对同类的控件只需要一次录制,就可以根据外部数据来自动选择不同列表项进行操作。也就是说,由于以上通过录制过程记录的控件信息所包括的控件属性值可以在执行过程中进行修改,参数化指的是支持这些潜在被变更属性值以参数的形式传入后续回放节点,同时参数化信息目前已经支持模糊匹配和完整匹配等功能。不难理解的是,支持参数化可以兼容控件部分信息的可变性或更新,进而实现一次录制得到的录制文件可以应用于其它类似控件中。
与现有技术需要对软件窗口和控件的行列索引等进行强绑定不同,本申请的实施例根据被录制控件的空间布局特征来获取录制文件因此能够更好地进行场景适配并可实现低代码化。
示例2
本申请一些实施例提供的录制方法也适用于图3这种类型的适配工作,实施人员在设计路程和适配的时候,大致步骤基本可以参照示例1。与示例1不同的是在使用录制时,需要切换到UIA(Interface Automation Mode)模式录制,因为只有该模式下,列表项的子控件才可见。
实施人员新建一个空间录制节点,制定目标录制策略,该目标录制策略为(被录制控件的空间布局特征选择矩阵布局,录制移动方向选择向左,且录制移动步长选择默认间隔即可),开始录制控件,按下F5快捷键,切换到UIA详细捕获模式。
下面结合图6和图7示例性阐述本申请实施例获取图3的录制文件的过程。
假设录制次数为一,如图6所示,鼠标移动到需要录制的参照物101对应的控件,按下ctrl+左键,进入空间布局匹配录制过程,即从该参照物向左移动默认间隔到达与参照物对应控件同一级的一个目标控件102,之后通过比对这两个控件的控件信息得到这两个控件的公共祖先控件,如图7所示,目标控件102和参照物101对应的控件同属于“5列表项目”这个容器控件中的内容,所以可以将“5列表项目”对应的容器控件作为第一逻辑祖先控件。在本申请的一些实施例中,可以通过记录该第一逻辑祖先控件的控件信息以及属于该第一逻辑祖先控件的各子控件的层级信息得到录制文件。
假设录制次数为二,如图6所示,鼠标移动到需要录制的参照物101对应的控件,按下ctrl+左键,进入空间布局匹配录制过程,即从该参照物向左移动默认间隔到达与参照物对应控件同一级的一个目标控件102,之后通过比对这两个控件的控件信息得到这两个控件的公共祖先控件,如图7所示,目标控件102和参照物101对应的控件同属于“5列表项目”这个容器控件中的内容,所以可以将“5列表项目”对应的容器控件作为第一逻辑祖先控件。再从该参照物向上移动默认间隔到达与参照物对应控件同一级的一个目标控件(即图6的文本内容网易对应的控件),之后通过比对这两个控件的控件信息得到这两个控件的逻辑祖先控件为图7的列表容器控件。之后在获取第一逻辑控件和列表容器控件的公共逻辑控件得到该功能祖先控件为图7的列表容器控件。在这些实施例中,可以通过记录该公共祖先控件的各子控件的层级信息得到录制文件。
图7还示出了与参照物对应控件的控件信息,即图7的英文所在的子控件属性列以及与该列对应的后边一列的具体控制属性值,例如,图7子控件“弘玑文本”对应的控件属性值为控件属性值这一列包括的“弘玑”二字。上述参数化信息若为输出控件的控件信息即从图7的最后一列中选择这些控件属性值所包括的一项或者多项内容进行输出。
请参考图8,图8示出了本申请实施例提供的一种录制窗口中控件的装置,应理解,该装置与上述图4方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作***中的软件功能模块,该录制窗口中控件的装置包括:目标控件获取模块201以及录制文件获取模块202。
目标控件获取模块201,被配置为以参照物所在位置为起点依据目标录制移动步长和目标录制移动方向在窗口上查找至少一个目标控件,其中,所述目标控件和与所述参照物对应的控件在所述窗口上的排布需满足目标空间布局特征。
录制文件获取模块202,被配置为根据所述目标控件得到录制文件,其中,所述录制文件用于定位与所述参照物对应控件同级别的一个或多个控件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述录制窗口中控件的方法所包括的任意实施例所述的方法。
如图9所示,本申请的一些实施例提供一种电子设备500,该电子设备500包括存储器510、处理器520以及存储在所述存储器510上并可在所述处理器520上运行的计算机程序,其中,所述处理器520通过总线530从存储器510读取程序并执行所述程序时可实现如上述录制窗口中控件的方法所包括的任意实施例所述的方法。
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图4中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (15)
1.一种录制窗口控件的方法,其特征在于,所述方法包括:
依据待录制控件在窗口上的布局特征获取目标录制策略,其中,所述目标录制策略包括:目标录制移动步长、目标录制移动方向以及目标空间布局特征,所述待录制控件包括与参照物对应的控件以及目标控件,所述布局特征为用户可视的所述待录制控件在所述窗口上的分布特征;
以所述参照物所在位置为起点依据所述目标录制移动步长和所述目标录制移动方向查找至少一个所述目标控件,其中,所述目标控件和与所述参照物对应的控件在所述窗口上的排布满足所述目标空间布局特征;
根据所述目标控件得到录制文件,其中,所述录制文件至少用于定位与所述参照物对应控件同级别的一个或多个控件。
2.如权利要求1所述的方法,其特征在于,所述根据所述目标控件得到录制文件,包括:记录与所述参照物对应控件的控件信息,并记录所述目标控件的控件信息,得到所述录制文件。
3.如权利要求1所述的方法,其特征在于,所述根据所述目标控件得到录制文件,包括:
获取所述目标控件和与所述参照物对应的控件的逻辑祖先控件,得到第一逻辑祖先控件;
根据所述第一逻辑祖先控件得到所述录制文件。
4.如权利要求3所述的方法,其特征在于,所述根据所述第一逻辑祖先控件得到所述录制文件,包括:
通过比对多个逻辑祖先控件得到公共祖先控件,其中,所述多个逻辑祖先控件包括所述第一逻辑祖先控件,所述多个逻辑祖先控件中的各逻辑祖先控件分别与不同参照物对应,或者与不同的目标录制移动方向对应,或者与不同目标录制移动步长对应;
获取所述公共祖先控件包括的各级子控件相对于所述公共祖先控件的层级信息,其中,与所述参照物对应的控件和所述目标控件属于所述各级子控件中的控件;
至少将与所述公共祖先控件对应的控件信息和所述层级信息作为所述录制文件中的内容。
5.如权利要求1所述的方法,其特征在于,所述依据待录制控件在所述窗口上的布局特征获取目标录制策略包括:
根据所述待录制控件在所述窗口上的布局设置多个录制项得到所述目标录制策略,其中,所述录制项包括:被录制控件的空间布局特征、录制移动方向、录制移动步长以及录制次数;或者,
选择默认录制策略作为所述目标录制策略。
6.如权利要求5所述的方法,其特征在于,所述被录制控件的空间布局特征包括:线性、矩形、圆形以及自定义矢量图谱中的至少一种,所述目标空间布局特征是从所述被录制控件的空间布局特征中选取得;或者
所述录制移动方向包括:沿参照物横向移动、沿参照物纵向移动,沿参照物向横向和纵向分别移动和沿参照物向自定义函数方向移动中的至少一种,所述目标录制移动方向是从所述录制移动方向中选取得。
7.如权利要求5所述的方法,其特征在于,所述参照物为表格,其中,所述录制项还包括:表格对齐方式,所述表格对齐方式包括:左上对齐或者中心对齐,所述起点是通过所述表格对齐方式确定的。
8.如权利要求1所述的方法,其特征在于,所述目标录制策略还包括目标录制次数,在所述根据所述目标控件得到录制文件之后,所述方法包括:
若确认录制总次数小于所述目标录制次数时,则更新所述目标录制策略重复获取所述录制文件的过程直至达到所述目标录制次数。
9.如权利要求1所述的方法,其特征在于,所述参照物的个数为多个,则所述方法包括:对各参照物分别重复获取录制文件的过程,得到多个所述录制文件。
10.如权利要求4所述的方法,其特征在于,所述方法还包括:
接收输入的参数化信息并获取所述录制文件,其中,所述参数化信息用于指示本次操作的类型,所述类型包括:输出文本内容;
通过所述录制文件得到所述公共祖先控件包括的所述各级子控件的路径信息;
对所述参数化信息进行解析得到目标操作控件和目标操作;
根据所述路径信息定位所述目标操作控件的位置;
根据所述位置在窗口上找到所述目标操作控件并完成针对所述目标操作控件的所述目标操作。
11.如权利要求10所述的方法,其特征在于,
所述通过所述录制文件得到所述公共祖先控件包括的所述各级子控件的路径信息,包括:
通过所述录制文件得到与所述各级子控件对应的关联路径,其中,所述关联路径用于表征从所述公共祖先控件到达相应子控件所经过的逻辑分层和偏移位置;
所述根据所述路径信息定位所述目标操作控件的位置,包括:
根据所述关联路径得到所有备用的控件句柄,其中,所述控件句柄用于表征所述各级子控件在内存的地址;
根据所述目标空间布局特征从所述所有备用的控件句柄中筛选出至少部分控件句柄,得到目标控件句柄;
通过所述目标控件句柄得到所述目标操作控件的位置。
12.如权利要求4所述的方法,其特征在于,所述参照物为表格,所述方法包括:
将参数化信息和所述录制文件传递到机器人中,其中,所述参数化信息为获取目标表格中的文本内容;
根据所述录制文件得到关联路径,其中,所述关联路径用于表征从所述公共祖先控件到达相应子控件所经过的逻辑分层和偏移位置;
通过所述机器人从所述录制文件中查询所述公共祖先控件,再根据所述关联路径找到所有备选控件;
按照所述目标空间布局特征对所述备选控件进行筛选过滤后,得到一个结构化的控件句柄;
根据所述参数化信息和所述结构化的控件句柄获取所述目标表格中所有文本内容。
13.如权利要求1所述的方法,其特征在于,在以所述参照物所在位置为起点依据目标录制移动步长和目标录制移动方向查找至少一个目标控件之前,所述方法还包括:
监控鼠标在所述窗口上的移动,并在录制人员发出录制触发指令时确认到达所述参照物,其中,所述录制触发指令在所述窗口上的发出位置用于表征操作人员在本次录制中所选择的所述参照物。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现如权利要求1-13中任意一项权利要求所述的方法。
15.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如权利要求1-13中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213074.4A CN115509665B (zh) | 2022-09-29 | 2022-09-29 | 一种录制窗口中控件的方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213074.4A CN115509665B (zh) | 2022-09-29 | 2022-09-29 | 一种录制窗口中控件的方法、装置、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115509665A CN115509665A (zh) | 2022-12-23 |
CN115509665B true CN115509665B (zh) | 2023-07-07 |
Family
ID=84508054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211213074.4A Active CN115509665B (zh) | 2022-09-29 | 2022-09-29 | 一种录制窗口中控件的方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509665B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641330A (zh) * | 2021-08-20 | 2021-11-12 | Oppo广东移动通信有限公司 | 录音控制方法及装置、计算机可读介质、电子设备 |
CN113938731A (zh) * | 2020-07-14 | 2022-01-14 | 海信视像科技股份有限公司 | 一种录屏方法及显示设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5604386B2 (ja) * | 2011-07-29 | 2014-10-08 | 楽天株式会社 | 情報処理装置、情報処理装置の制御方法、プログラム及び情報記録媒体 |
CN104391797B (zh) * | 2014-12-09 | 2017-11-10 | 北京奇虎科技有限公司 | Gui控件的识别方法和装置 |
CN109189682B (zh) * | 2018-08-27 | 2022-03-22 | 北京云测信息技术有限公司 | 一种脚本录制方法和装置 |
CN110460774A (zh) * | 2019-08-16 | 2019-11-15 | 维沃移动通信有限公司 | 一种视频录制的控制方法及终端 |
CN110806873B (zh) * | 2019-10-31 | 2023-07-21 | 拉扎斯网络科技(上海)有限公司 | 目标控件确定方法、装置、电子设备及存储介质 |
CN111460355B (zh) * | 2020-04-17 | 2023-06-09 | 支付宝(杭州)信息技术有限公司 | 一种页面解析方法和装置 |
CN112667235A (zh) * | 2020-12-24 | 2021-04-16 | 北京像素软件科技股份有限公司 | 可视化布局编辑实现方法、装置和电子设备 |
CN112631588A (zh) * | 2020-12-28 | 2021-04-09 | 北京五八信息技术有限公司 | 文件生成方法、装置、电子设备和计算机可读介质 |
CN112817866A (zh) * | 2021-02-25 | 2021-05-18 | 北京百家科技集团有限公司 | 录制回放方法、装置、***、计算机设备以及存储介质 |
CN115086570A (zh) * | 2021-03-16 | 2022-09-20 | 北京智通东方软件科技有限公司 | 教学视频处理方法、装置、存储介质及电子设备 |
-
2022
- 2022-09-29 CN CN202211213074.4A patent/CN115509665B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938731A (zh) * | 2020-07-14 | 2022-01-14 | 海信视像科技股份有限公司 | 一种录屏方法及显示设备 |
CN113641330A (zh) * | 2021-08-20 | 2021-11-12 | Oppo广东移动通信有限公司 | 录音控制方法及装置、计算机可读介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115509665A (zh) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10261659B2 (en) | Orbit visualization for displaying hierarchical data | |
JP6018045B2 (ja) | 選択したデータの一時的な書式設定とグラフ化 | |
US9367199B2 (en) | Dynamical and smart positioning of help overlay graphics in a formation of user interface elements | |
JP5792287B2 (ja) | オプションを選択するためのスピンコントロールユーザインターフェース | |
US10740548B2 (en) | Dynamic report building using a heterogeneous combination of filtering criteria | |
US9830058B2 (en) | Generating an insight view while maintaining report context | |
US9619110B2 (en) | Assistive overlay for report generation | |
US11048484B2 (en) | Automated responsive grid-based layout design system | |
US9274686B2 (en) | Navigation framework for visual analytic displays | |
EP2136292A1 (en) | Service program generation technology | |
US20070061716A1 (en) | Text editing method and apparatus | |
CN110300966B (zh) | 增强的数据透视表的创建和交互 | |
US20120120086A1 (en) | Interactive and Scalable Treemap as a Visualization Service | |
KR101773574B1 (ko) | 데이터 테이블의 차트 시각화 방법 | |
KR101798149B1 (ko) | 데이터 테이블 중 일부 영역 선택을 통한 차트 시각화 방법 | |
US20140075411A1 (en) | Meta-Languages For Creating Integrated Business Applications | |
CN113010162A (zh) | 一种页面构建方法、装置及设备 | |
US20150012817A1 (en) | Browser-Based Designer Tool For A User Interface And The Administration Of Tiles | |
KR101910179B1 (ko) | 데이터 시각화를 위한 웹 기반 차트 라이브러리 시스템 | |
CN115509665B (zh) | 一种录制窗口中控件的方法、装置、介质及设备 | |
KR101769129B1 (ko) | 온라인 환경에서 구현되는 대시보드 내 차트간 인터랙션 방법 | |
US9710571B2 (en) | Graphical top-down planning system | |
KR102658042B1 (ko) | 데이터 관리 소프트웨어 개발을 위한 전자 장치 및 그의 동작 방법 | |
Prakljačić et al. | Tool for image annotation in context of modern object detection | |
JP6604140B2 (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム |
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 |