CN114020267A - 一种rpa窗口控件检测的方法 - Google Patents
一种rpa窗口控件检测的方法 Download PDFInfo
- Publication number
- CN114020267A CN114020267A CN202111301760.2A CN202111301760A CN114020267A CN 114020267 A CN114020267 A CN 114020267A CN 202111301760 A CN202111301760 A CN 202111301760A CN 114020267 A CN114020267 A CN 114020267A
- Authority
- CN
- China
- Prior art keywords
- window
- control
- image
- detection
- state
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000001514 detection method Methods 0.000 claims abstract description 40
- 230000008859 change Effects 0.000 claims abstract description 27
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种RPA窗口控件检测的方法,包括:准备模板图片;加载窗口控件操作动态库dll和图像匹配动态库dll;使用窗口控件操作动态库接口改变窗口状态或操作窗口内的控件,获得预期窗口或控件状态改变;若预期结果固定,则使用窗口控件操作动态库接口等待窗口状态改变成功;使用图像检测指定区域内的图像匹配程度;若预期结果不固定,截取当前屏幕指定区域内的图像,依次对模板图片进行图像匹配度检测;判断匹配情况;检测结束,反馈最终结果。本发明的目的是提供一种RPA窗口控件检测的方法,以扩大检测场景、提高检测时效、增强检测功能性。
Description
技术领域
本发明涉及计算机软件技术领域,具体涉及一种RPA窗口控件检测的方法。
背景技术
在RPA领域中,涉及对客户端的操作时,经常需要对窗口控件状态进行检测,主流的方式是直接通过对Windows标准控件进行状态检查来判断。但越来越多的客户端软件在设计时选择了模拟控件的方式,仅保留了最顶层的窗口,其他内部控件均通过绘制或直接使用图片替代的方式实现个性化的用户交互效果,这些内部非标准控件不再能够以标准控件的方式来识别,因此需要通过其他方式来检查窗口控件的状态。
此外,Windows标准控件检查的结果有一定的“超前性”,即从状态变化完成到屏幕呈现的过程有不同程度的延迟,这是Windows图形化界面底层设计所决定的,如果以此判断窗口控件状态,在一些配置较低、负载较高的客户端上则会因展示延迟而出现错误。
针对这种情况,本发明基于人工判断的行为习惯,采用一种图片匹配的方式进行检查,基于opencv图片相似度原理进行匹配,针对目标屏幕分辨率对模板图片进行缩放,获得窗口大小后确定匹配区域,在较小范围内对屏幕进行捕捉和对比,实现窗口控件检查效果。与传统Windows标准窗口控件检查方法相比,适用场景得到了显著增强,状态检查结果也更加符合用户所需要的结果。
发明内容
越来越多的客户端软件不再使用Windows标准控件,使用常规的标准控件操作方法不再能够生效,而标准窗口控件的状态获取本身也可能出现“超前性”问题,本发明的目的在于提供一种RPA窗口控件检测的方法,结合窗口操作和图像匹配得到更为快速和精确的检测效果。
为了实现上述目的,本发明采用以下技术方案:
一种RPA窗口控件检测的方法,包括:
准备模板图片;
加载窗口控件操作动态库dll和图像匹配动态库dll;
使用窗口控件操作动态库接口改变窗口状态或操作窗口内的控件,获得预期窗口或控件状态改变;
若预期结果固定,则使用窗口控件操作动态库接口等待窗口状态改变成功;使用图像检测指定区域内的图像匹配程度;
若预期结果不固定,截取当前屏幕指定区域内的图像,依次对模板图片进行图像匹配度检测;
判断匹配情况;
检测结束,反馈最终结果。
在一些实施例中,所述准备模板图片,包括:提前针对可能出现的操作结果进行选择性截图,截取有唯一性质的区域作为模板图片,同时记录截图时屏幕的分辨率。
在一些实施例中,所述窗口控件操作动态库用于触发窗口或控件的状态变更,或直接发送窗口和控件指令、触发控件事件,以间接改变屏幕上的窗口和控件状态。
在一些实施例中,所述图像匹配动态库用于预期结果检测,通过对比模板图像与当前屏幕指定区域截图图像形成匹配度,从而推导出检测结果。
在一些实施例中,所述使用图像检测指定区域内的图像匹配程度,包括:使用图像匹配检测的方式判断屏幕截图与模板图像,通过匹配度是否超过预期值确定其真实状态。
在一些实施例中,所述判断匹配情况,包括:若在单次检测中匹配到任意一张模板图像,则认为该图像对应的场景已经出现,直接反馈结果即可,否则再次进行检测,若在指定时间内均为匹配到任何一张模板图像,则认为等待超时。
有益效果
本发明结合窗口操作和图像匹配的方法实现窗口检测,扩大了屏幕图像检测的适用场景,提高了窗口控件状态检测的时效性,丰富了多图轮流检测的功能性,为RPA流程定义和执行提供了强有力的保障。
附图说明
图1为本发明一种RPA窗口控件检测的方法的流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
相反,本申请涵盖任何由权利要求定义的在本申请的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本申请有更好的了解,在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。
本发明基于图像匹配的原理进行窗口控件检查,在检测前需准备好窗口控件的模板图片。检测过程中,先使用Windows标准控件的相关操作改变窗口控件状态,然后使用图像匹配技术循环检测屏幕上是否出现了预期的改变,考虑到可能出现的偏差和错误,能够设置检测超时时间,在超时后及时关停检测任务并报告错误。以检测窗口出现为例,详细步骤如下:
首先,准备窗口控件的模板图片,即预期会出现的图片,一般选择窗口控件中固定不变的、有唯一特色的区域进行截图,同时记录下当前截图时的屏幕分辨率;
其次,使用自动化控制的方式(调用Windows接口)改变窗口控件状态为显示,然后继续使用自动化控制的方式(调用Windows接口)等待窗口状态改变成预期的状态;
状态变成预期状态后,由于窗口渲染的滞后性,还需通过图像匹配的方式确认屏幕显示情况。先对比当前屏幕的分辨率和模板图片的分辨率,如不一致则对模板图片进行缩放,生成对标图片,然后不断截取屏幕上指定区域的图片,与对标图片进行灰度匹配,若匹配度高于设定值时则认为窗口已出现,否则在达到超时时间后仍未有超过规定匹配度的图像出现,则认为窗口未出现。
检测窗口消失的方式与检测出现相反,当检测到匹配度低于设定值时则认为窗口已消失。
检测可能出现的多个窗口或图像区域时,在触发窗口状态变更或可能引起其他控件状态变更的动作后,由于可能出现的窗口或图像区域并非唯一,此时不再等待窗口状态改变成预期状态,转为通过轮流检测预期图像的方式,在一个检测周期内循环匹配多个预期图像,若有图像的匹配度高于设定值,则认为此图像已出现,若在超时时间内图像匹配值无一超过设定值,则认为所有图像均未出现。
最后,根据图像的出现、消失以及哪个图像先出现,反馈给RPA程序,便能正确地控制并执行后续操作了。
以下将结合图1对本申请实施例所涉及的RPA窗口控件检测的方法进行详细说明。值得注意的是,以下实施例仅仅用于解释本申请,并不构成对本申请的限定。
实施例1
本发明提供一种RPA窗口控件检测的方法包括:
步骤101:准备模板图片,提前针对可能出现的操作结果进行选择性截图,截取有唯一性质的区域作为模板图片,同时记录截图时屏幕的分辨率,方便在不同分辨率的客户端上移植。
步骤102:加载窗口控件操作动态库dll和图像匹配动态库dll。窗口控件操作动态库主要用于触发窗口或控件的状态变更,也可以直接发送窗口和控件指令、触发控件事件,以间接改变屏幕上的窗口和控件状态。图像匹配动态库主要用于预期结果检测,通过对比模板图像与当前屏幕指定区域截图图像形成匹配度,从而推导出检测结果。
步骤103:使用窗口控件操作动态库接口改变窗口状态或操作窗口内的控件,获得预期窗口或控件状态改变。在RPA中,所有操作均为自动化操作,使用窗口控件操作动态库接口改变窗口状态或操作窗口内的控件是典型的操作步骤。
步骤104:根据预期窗口或控件改变执行下一步。Windows窗口应用程序千差万别,RPA向其发送控制指令后,预期结果很可能并不固定,此时需要根据预期结果是否固定来判断执行何种操作,若预期结果固定(即仅单个窗口发生改变),则执行步骤105。
步骤105:使用窗口控件操作动态库接口等待窗口状态改变成功。对Windows窗口控件的操作并非立即见效,它受***硬件、负载和应用程序自身设计所影响,与图像匹配所耗资源相比,检测Windows窗口状态变更是否成功更节省资源,因此在下达能引起窗口控件变更的指令后,可以先判断预期窗口的状态值变更。
步骤106:使用图像检测指定区域内的图像匹配程度。待预期窗口的状态值变更为预期值后,由于Windwos窗口渲染技术的底层设计的原因,以窗口出现为例,此时窗口状态已变为可见但实际上并非肉眼可见,可以预期即将可见,这段时间只能使用图像匹配检测的方式判断屏幕截图与模板图像,通过匹配度是否超过预期值确定其真实状态。
若步骤104的预期结果不固定,执行某个操作后可能有多个窗口或控件之一状态发生变更,则执行步骤107。
步骤107:截取当前屏幕指定区域内的图像,依次对模板图片进行图像匹配度检测。举例来说,一个窗口关闭操作在应用程序内,可能直接关闭成功,也可能因为应用程序内的某些设定导致关闭失败。即便关闭成功,也可能存在关闭前保存的动作,至于需要关闭多久也无法确定,而关闭失败时也可能弹出错误提示窗口。对于这种场景,单独等待某一个窗口出现或消失将不再可行。图像检测通常是循环检测,在单次检测中,将截取屏幕图像形成匹配图像,然后从模板图像中提取标准图像计算二者匹配程度,在单次检测中循环检查多个图像,实现多种可能情况的匹配检查。
步骤108:判断匹配情况。若在单次检测中匹配到任意一张模板图像,则认为该图像对应的场景已经出现,直接反馈结果即可,否则再次进行检测,若在指定时间内均为匹配到任何一张模板图像,则认为等待超时。
步骤109:检测结束,反馈最终结果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种RPA窗口控件检测的方法,其特征在于,包括:
准备模板图片;
加载窗口控件操作动态库dll和图像匹配动态库dll;
使用窗口控件操作动态库接口改变窗口状态或操作窗口内的控件,获得预期窗口或控件状态改变;
若预期结果固定,则使用窗口控件操作动态库接口等待窗口状态改变成功;使用图像检测指定区域内的图像匹配程度;
若预期结果不固定,截取当前屏幕指定区域内的图像,依次对模板图片进行图像匹配度检测;
判断匹配情况;
检测结束,反馈最终结果。
2.根据权利要求1所述的一种RPA窗口控件检测的方法,其特征在于,所述准备模板图片,包括:提前针对可能出现的操作结果进行选择性截图,截取有唯一性质的区域作为模板图片,同时记录截图时屏幕的分辨率。
3.根据权利要求1所述的一种RPA窗口控件检测的方法,其特征在于,所述窗口控件操作动态库用于触发窗口或控件的状态变更,或直接发送窗口和控件指令、触发控件事件,以间接改变屏幕上的窗口和控件状态。
4.根据权利要求1所述的一种RPA窗口控件检测的方法,其特征在于,所述图像匹配动态库用于预期结果检测,通过对比模板图像与当前屏幕指定区域截图图像形成匹配度,从而推导出检测结果。
5.根据权利要求1所述的一种RPA窗口控件检测的方法,其特征在于,所述使用图像检测指定区域内的图像匹配程度,包括:使用图像匹配检测的方式判断屏幕截图与模板图像,通过匹配度是否超过预期值确定其真实状态。
6.根据权利要求1所述的一种RPA窗口控件检测的方法,其特征在于,所述判断匹配情况,包括:若在单次检测中匹配到任意一张模板图像,则认为该图像对应的场景已经出现,直接反馈结果即可,否则再次进行检测,若在指定时间内均为匹配到任何一张模板图像,则认为等待超时。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111301760.2A CN114020267A (zh) | 2021-11-04 | 2021-11-04 | 一种rpa窗口控件检测的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111301760.2A CN114020267A (zh) | 2021-11-04 | 2021-11-04 | 一种rpa窗口控件检测的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020267A true CN114020267A (zh) | 2022-02-08 |
Family
ID=80060933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111301760.2A Pending CN114020267A (zh) | 2021-11-04 | 2021-11-04 | 一种rpa窗口控件检测的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020267A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102830958A (zh) * | 2011-06-16 | 2012-12-19 | 奇智软件(北京)有限公司 | 一种获取界面控件信息的方法及*** |
CN110286971A (zh) * | 2019-04-24 | 2019-09-27 | 网易乐得科技有限公司 | 处理方法及***、介质和计算设备 |
CN111240678A (zh) * | 2020-01-13 | 2020-06-05 | 网易(杭州)网络有限公司 | 弹出窗口的设置方法及装置、电子设备、存储介质 |
CN111752666A (zh) * | 2020-06-30 | 2020-10-09 | 杭州海康威视数字技术股份有限公司 | 窗口显示方法、装置和终端 |
CN113312129A (zh) * | 2021-05-24 | 2021-08-27 | 华南理工大学 | 软件操作流程自动化机器人方法、***、装置及介质 |
CN113360151A (zh) * | 2021-06-02 | 2021-09-07 | 湖南大学 | 一种用于rpa***的ui数据集自动生成方法和*** |
-
2021
- 2021-11-04 CN CN202111301760.2A patent/CN114020267A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102830958A (zh) * | 2011-06-16 | 2012-12-19 | 奇智软件(北京)有限公司 | 一种获取界面控件信息的方法及*** |
CN110286971A (zh) * | 2019-04-24 | 2019-09-27 | 网易乐得科技有限公司 | 处理方法及***、介质和计算设备 |
CN111240678A (zh) * | 2020-01-13 | 2020-06-05 | 网易(杭州)网络有限公司 | 弹出窗口的设置方法及装置、电子设备、存储介质 |
CN111752666A (zh) * | 2020-06-30 | 2020-10-09 | 杭州海康威视数字技术股份有限公司 | 窗口显示方法、装置和终端 |
CN113312129A (zh) * | 2021-05-24 | 2021-08-27 | 华南理工大学 | 软件操作流程自动化机器人方法、***、装置及介质 |
CN113360151A (zh) * | 2021-06-02 | 2021-09-07 | 湖南大学 | 一种用于rpa***的ui数据集自动生成方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11450052B2 (en) | Display control method and apparatus for game screen, electronic device, and storage medium | |
US20160283353A1 (en) | Automated software testing | |
US7533189B2 (en) | Enabling a graphical window modification command to be applied to a remotely generated graphical window | |
US9898396B2 (en) | Automated software testing and validation via graphical user interface | |
US8331721B2 (en) | Automatic image correction providing multiple user-selectable options | |
US10783066B2 (en) | Application content display at target screen resolutions | |
US9734047B2 (en) | Method and apparatus for an improved automated test of software with a graphical user interface | |
WO2018036531A1 (zh) | 一种测试用例生成方法 | |
CN111726818B (zh) | 无线芯片的测试方法、装置、计算机设备和存储介质 | |
US11288169B2 (en) | Method of, and apparatus for, handling reference images for an automated test of software with a graphical user interface | |
CN114341784A (zh) | 触摸事件的处理方法、装置、移动终端及存储介质 | |
WO2016170618A1 (ja) | 自動試験装置 | |
CA3129985A1 (en) | Abnormal operation environment restoration method and device, computer equipment and storage medium | |
US9146757B1 (en) | Dynamically loaded plug-ins to provide an integrated graphical user interface | |
CN114020267A (zh) | 一种rpa窗口控件检测的方法 | |
US6944795B2 (en) | Method and apparatus for stabilizing GUI testing | |
JP4896909B2 (ja) | シナリオ生成装置及びプログラム | |
CN111797339A (zh) | 页面渲染监控方法和装置 | |
CN111857857B (zh) | 界面展示方法、装置和设备 | |
CN109739752B (zh) | 内置资源测试方法、装置、电子设备及可读存储介质 | |
CN111190574B (zh) | 多级联动组件的选项选择方法、装置、设备和存储介质 | |
US9047123B2 (en) | Computing device for running computer program on video card selected based on video card preferences of the program | |
CN111913775B (zh) | 一种用于手机屏幕的自动点击方法、装置及其存储介质 | |
CN111506492B (zh) | 一种应用程序的测试方法及装置、设备、存储介质 | |
EP3944085A1 (en) | An information processing system with intelligent program smoke testing |
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 |