CN114428575A - 一种界面元素探测识别方法、装置、存储介质及电子设备 - Google Patents

一种界面元素探测识别方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN114428575A
CN114428575A CN202210081823.6A CN202210081823A CN114428575A CN 114428575 A CN114428575 A CN 114428575A CN 202210081823 A CN202210081823 A CN 202210081823A CN 114428575 A CN114428575 A CN 114428575A
Authority
CN
China
Prior art keywords
mouse
identification algorithm
information
target
algorithm information
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
Application number
CN202210081823.6A
Other languages
English (en)
Inventor
陈宏伟
饶玉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northking Information Technology Co ltd
Original Assignee
Northking Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northking Information Technology Co ltd filed Critical Northking Information Technology Co ltd
Priority to CN202210081823.6A priority Critical patent/CN114428575A/zh
Publication of CN114428575A publication Critical patent/CN114428575A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请实施例公开了一种界面元素探测识别方法、装置、存储介质及电子设备。该方法包括:在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;确定与所述元素应用类型相匹配的元素识别算法信息;根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息。本技术方案,可以根据元素应用类型自动识别元素对象,可以有效的屏蔽各种应用场景中的技术复杂度,提高了元素的识别精度,减少了资源的浪费。

Description

一种界面元素探测识别方法、装置、存储介质及电子设备
技术领域
本申请实施例涉及计算机自动化技术领域,尤其涉及一种界面元素探测识别方法、装置、存储介质及电子设备。
背景技术
随着全球数字化经济的深入,各行业开始实施数字化转型,以实现降本增效开源节流的目的。其中,RPA(Robotic process automation,机器人流程自动化)的弱耦合性、易操作、部署便捷、效率高等特性受到了各行业的青睐,从而成为重要的企业数字化转型工具之一。同时为了进一步提升RPA产能,很多企业开始通过RPA+AI+创新技术的超级自动化,将费时、费力的非结构化数据业务实现自动化。因此一种高效的、准确的、跨平台的计算机系统元素识别技术赋能计算机自动化应用就减少研发成本、专注于业务研发来说是非常重要的。
计算机自动化领域中当前界面元素探测识别主要采用MSAA(Microsoft ActiveAccessibility)、UIA(Microsoft User Interface Automation)、MSHTML、浏览器扩展(Chrome Extension)和JAB(Java Access Bridge)等技术。
由于各种软件系统使用的技术栈以及和它运行的操作系统不同,当前界面元素探测识别方法对于各种复杂场景往往很难满足需求,需要大量的人力物力根据不同场景结合不同场景进行改进。
发明内容
本申请实施例提供一种界面元素探测识别方法、装置、存储介质及电子设备,根据元素应用类型自动识别元素对象,可以有效的屏蔽各种应用场景中的技术复杂度,提高了元素的识别精度,减少了资源的浪费。
第一方面,本申请实施例提供了一种界面元素探测识别方法,该方法包括:
在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;
确定与所述元素应用类型相匹配的元素识别算法信息;
根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息。
第二方面,本申请实施例提供了一种界面元素探测识别装置,该装置包括:
元素应用类型获取模块,用于在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;
元素识别算法信息确定模块,用于确定与所述元素应用类型相匹配的元素识别算法信息;
目标元素对象得到模块,用于根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的界面元素探测识别方法。
第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的界面元素探测识别方法。
本申请实施例所提供的技术方案,在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型,然后确定与元素应用类型相匹配的元素识别算法信息,并根据元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象。本技术方案,可以根据元素应用类型自动识别元素对象,可以有效的屏蔽各种应用场景中的技术复杂度,提高了元素的识别精度,减少了资源的浪费。
附图说明
图1是本申请实施例一提供的界面元素探测识别方法的流程图;
图2是本申请实施例一提供的UIElement对象的示意图;
图3是本申请实施例一提供的目标元素对象识别的流程图;
图4是本申请实施例二提供的界面元素探测识别过程的示意图;
图5是本申请实施例二提供的目标元素获取的流程图;
图6是本申请实施例三提供的界面元素探测识别装置的结构示意图;
图7是本申请实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本申请实施例一提供的界面元素探测识别方法的流程图,本实施例可适用于对计算机元素进行探测识别的情况,该方法可以由本申请实施例所提供的界面元素探测识别装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于用于计算机元素识别的智能终端等设备中。
如图1所示,所述界面元素探测识别方法包括:
S110、在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;
其中,钩子(Hook)是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理Windows消息或特定事件。其中,Windows系统是建立在事件驱动的机制上的,钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。例如,在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词或者日志监视等等。
在本实施例中,Win32桌面程序包括win32、WPF、MFC、WinForm、UWP和Qt。webkit内核浏览器包括chrome、edge和firefox。
在本方案中,在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型之前,还包括:封装统一的元素应用对象,封装全局的鼠标和键盘钩子以及封装统一的应用类型识别层。
其中,由于原生的winform桌面、java桌面和web程序的元素都存在不一样的属性和操作方法,因此,把各类元素的复杂信息通过封装和转换方法抽象出标准的元素对象。元素对象包括基本属性信息、元素对象隶属信息、基本操作信息以及对象转选择串信息。其中,基本属性信息包括id、name、role、cls、aaName、type以及idx;元素对象隶属信息包括ancestors;基本操作信息包括click、doubleClick、equal、invokeMethod、getValue、setValue;对象转选择串信息包括:toSelector。格式为<htm app=”title=”cls=”appType=”/><webcrtl id=”name=”role=”cls=”aaName=”type=”idx=”>。
在本方案中,封装全局的鼠标和键盘钩子主要实现功能包括注册鼠标/键盘钩子、卸载鼠标/键盘钩子、F2延时识别、截获F2的键盘消息、ESC终止识别以及截获ESC的键盘消息。
在本实施例中,封装统一的应用类型识别层的封装方式如下:
1)定义一个IInspector的接口类,它包含FetchEleByPoint(根据鼠标的屏幕坐标获取元素对象UIElement)、GetEleBySelector(根据元素对象UIElement的对象描述串selector获取元素)、元素操作方法(click、doubleClick、equal、invokeMethod、getValue、setValue)。
2)根据元素应用类型实现Win32Inspetor(桌面程序)、IE浏览器(IeInspector)、WebkitInsepctor(webkit内核浏览器)和JavaInspector(java桌面程序)四种类型的元素探测、识别及操作。
3)定义自动识别元素的应用类型管理类InspectorMgr,通过该类的GetInspector方法就可以获取一个IInspector对象。GetInspector的实现如下:
首先,初始化UIA组件的CUIAutomation对象并调用它的ElementFromPoint方法获取当活动窗体的handle和className。
然后,如果窗体的className.Equal(“Internet Explorer_Server”)就是IeInspector。如果是className.Equal(“chrome”)就是WebkitInspector。如果className.Equal(“SunAwt”)就是JavaInspector。否则就是缺省WinInspector。
在本实施例中,若监测到鼠标键盘的输入操作,则打开监视窗口消息的钩子,并通过钩子获取与鼠标移动位置相关联的元素应用类型。
在本技术方案中,可选的,获取与鼠标移动位置相关联的元素应用类型,包括:
通过预先确定的识别层接口对象获取元素探测器;
基于所述元素探测器,确定与鼠标移动位置相关联的元素应用类型。
在本方案中,由调用方调用统一识别层的InspectorMgr接口对象获取一个相应应用类型的元素探测器。并通过元素探测器确定与鼠标移动位置相关联的元素应用类型。
通过确定与鼠标移动位置相关联的元素应用类型,可以基于统一自动识别层,可自动适应不同情况系统和环境,提高界面元素探测识别的效率。
S120、确定与所述元素应用类型相匹配的元素识别算法信息;
其中,元素识别算法信息用于对不同元素应用类型的元素对象进行识别。元素应用类型和元素识别算法的匹配关系是预先进行确定的,可以从预先封装的应用类型识别层中获取与元素应用类型相匹配的元素识别算法信息。
在本技术方案中,可选的,确定与所述元素应用类型相匹配的元素识别算法信息,包括:
从预先确定的候选元素识别算法信息中进行查找,确定与所述元素应用类型相匹配的元素识别算法信息;其中,所述候选元素识别算法信息包括Win32桌面程序元素识别算法信息、IE浏览器元素识别算法信息、webkit内核浏览器元素识别算法信息和Java桌面程序元素识别算法信息。
其中,Win32桌面程序元素识别算法信息包括UIA(Microsoft UI Automation)中间技术。UIA是一个应用程序编程接口,它允许访问、标识和操作另一个应用程序的用户界面元素。识别时,UIA组件有个接口对象CUI Automation,该对象ElementFromPoint的方法,可以从指定屏幕坐标点拾取UIA元素对象IUIAutomationElement。把UIA对象元素的相关属性(如Name、ClassName、ControlType、AutomationId、FrameworkId、ProcessId、NativeWindowHandle)封装成UIElement应用对象。执行操作时,首先调用UIElement对象的toSelector()方法把对象转换成元素定位字符串。根据选择串的相关信息,采用UIA中间技术先查找顶级窗口对象IUIAutomationElement,再根据窗口元素查找目标元素。如FindFirst、FindAll等方法。找到目标元素后,使用元素的GetCurrentPattern方法获取对应的元素控件的模式,例如:获取的元素的控件类型是按钮(Button),则Button类型的Pattern,则提供了相关该对象提供invoke方法,直接调用invoke方法即可触发元素的点击功能。如果元素是复选框,则提供复选框的Pattern的对象,该对象提供切换复选框的方法,调用该方法,直接达到复选框切换的功能。
在本实施例中,IE浏览器元素识别算法信息包括IE浏览器COM组件MSHTML技术,MSHTML是微软的窗口操作系统搭载的网页浏览器Internet Explorer的排版引擎的名称,MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素。MSHTML提供了丰富的HTML文档接口,有IHTMLDocument、IHTMLDocument2以及IHTMLDocument7等7种。其中,IHTMLDocument只有一个Script属性,是管理页面脚本用的;IHTMLDocument2接口跟C#的HtmlDocument类(即通过Web Browser控件直接获得的Document属性)很相似;IHTMLDocument3是跟Visual Basic6.0里的文档对象相似的一个接口,基本上可以用到的方法都在其中。MSHTML还提供封装了对HTML元素完整操作的IHTMLElement接口,通过IHTMLElement可以准确地判断HTML元素节点的类型,还可以获取HTML元素节点的所有属性。识别时,枚举当前IE所有浏览器对象(利用SHDocVw COM组件技术),通过与当前正在活动的IE窗口句柄比较,获取当前的鼠标正在操作的InternetExplorer对象,InternetExplorer的Document属性即HTMLDocument对象。在MSHTML组件中,HTMLDocument提供一个方法elementFromPoint,根据Point来找元素,但是Point是相对文档HTMLDocument的坐标,因此需要把鼠标位置的Point,转成相对坐标才能得到当前鼠标点处的元素。如果是嵌套iframe内的元素,还需要进入iframe内部,进一步坐标换算才能得到鼠标处的元素,通过下面的方法,可以得到iframe内部的HTMLDocument对象,再进行一次坐标变换,仍然利用elementFromPoint方法获取元素,如果iframe内部还有iframe,则同样方法计算。得到IHTMLElement元素后,就可以获取元素的相关属性(如:tag,id,name,css等等)封装成UIElement应用对象。执行操作时,首先调用UIElement对象的toSelector()方法把对象转换成元素定位字符串,并根据选择串得到相关的InternetExplorer浏览器窗口,得到HTMLDocument对象,根据HTMLDocument的方法getElementsByName、getElementById,查找并筛选出目标元素IHTMLElement,根据元素的tag属性,转换成相应的IE元素,如HTMLButtonElement、HTMLInputElement、HTMLSelectElement等等,得到元素后,可以模拟点击的方式或者调用IHTMLElement的本身相关点击方法,从而实现操作浏览器元素的功能。
在本方案中,webkit内核浏览器元素识别算法信息的元素识别由chrome扩展和Win32控制台程序两者通过ConnectNative(输入/输出流)通信方式协同完成。扩展程序负责收集元素的基本信息并通过字符流发送到Win32控制台程序。控制台程序把接收来自扩展程序的元素信息封装成UIElement对象供元素识别客户端使用。其中,Chrome扩展(Chrome Extension)是一个用Web技术开发、用来增强浏览器功能的软件,它是一个由HTML、CSS、JS、图片等资源组成的一个.crx后缀的压缩包,一个扩展最基本的项目结构要求是由content.js、backgroud.js和manifest.json三个文件组成。扩展提供了很多实用API供开发者使用,主要包括书签控制、下载控制、窗口控制、标签控制、网络请求控制、各类事件监听、自定义原生菜单以及完善的通信机制等。
其中,mainfest.json是一个Chrome插件最重要也是必不可少的文件,用来配置所有和插件相关的配置,必须放在根目录。其中,manifest_version、name、version3个是必不可少的。关键配置包括1)background配置后台执行background.js;2)permissions配置插件的访问权限;3)content_script配置注入到网页的js脚本。backgroud.js是Chrome插件后台处理js文件,是一个常驻的页面,它的生命周期是插件中所有类型页面中最长的,它随着浏览器的打开而打开,随着浏览器的关闭而关闭,所以通常把需要一直运行的、启动就运行的、全局的代码放在background里面。background的权限非常高,几乎可以调用所有的Chrome扩展API,而且它可以无限制跨域,也就是可以跨域访问任何网站而无需要求对方设置CORS。background在元素识别发挥的主要做用是桥接前端content与Win32控制台程序的信息交互。content.js是Chrome插件中向页面注入脚本的一种形式,借助content-scripts可以实现通过配置的方式轻松向指定页面注入JS和CSS。
在本实施例中,识别时,根据chome扩展的特性在content.js中加入监听document的mouseover事件。当打开一个网页时,content.js同时也会被注入到此网页。鼠标移动时就会被content中的mouseover事件监听到并获取到鼠标所在位置的网页元素所有信息(如:id、name、tagName、type、class、css、selector、innerText以及xpath等)。content采集到元素信息通经过background以输入流的通信方式发送到Win32控制程序。执行操作时,首先调用UIElement对象的toSelector()方法把对象转换成元素定位字符串。根据元素识别模式把串发送到浏览器扩展中,由扩展负责找到元素位于的浏览器窗体、iframe、document。确定了元素的document对象后调用它的document.querySelectorAll()接口就可以准确找到UiElement对象对应的Dom对象。如:button、input、img等等。有了Dom对象就可以对元素进行各操作。如:模拟点击的方式或者调用dom对象的本身相关点击方法,从而实现操作浏览器元素的功能。
其中,Java桌面程序元素识别算法信息包括Java Access Bridge技术。JavaAccess Bridge是一项在Microsoft Windows DLL中公开Java Accessibility API的技术,可以使实现Java Accessibility API的Java应用程序和小程序对Microsoft Windows系统上的辅助技术可见。Java Accessibility API是Java Accessibility Utilities的组成部分,后者是一组实用程序类,可以帮助辅助技术提供对实现Java Accessibility API的GUI工具包的访问。识别时,首先要创建桥接对象,并调用初始化方法,包括:根据屏幕坐标的鼠标点,获取当前鼠标点的java元素对象,鼠标点的位置获取的对象可能不止一个,可根据矩形范围进行精确定位到目标元素;判断元素类型是否为“iAccessibleContextNode”的类型;如果是此种类型,转换对象类型为AccessibleContextNode对象类型,获取java元素属性信息,此时可以用获取的相关的元素信息,封装成UIElement应用对象。执行操作时,首先调用UIElement对象的toSelector()方法把对象转换成元素定位字符串。根据选择串采用UIA中间技术先查找顶级窗口对象,再根据窗口元素利用Java Access Bridge技术转成AccessibleWindow的Java窗口对象,AccessibleWindow对象有获取上下级的方法,根据相关选择串的属性,进行匹配查找,即可查到目标元素。找到目标元素后,就可以向元素发送“单击”的指令。或者根据矩形范围区域,模拟鼠标点击操作。其他比如文本框赋值,复选框勾选等等。
示例性的,图2是本申请实施例一提供的UIElement对象的示意图,如图2所示,UIElement对象包括win32、WPF、MFC、WinForm、UWP和Qt;Java桌面程序;chrome、edge和firefox;Internet Explorer。
在本实施例中,Win32桌面程序元素识别算法信息、IE浏览器元素识别算法信息、webkit内核浏览器元素识别算法信息和Java桌面程序元素识别算法信息预先已经进行封装,在确定元素应用类型后,可以根据元素应用类型从预先封装的应用识别层中的候选元素识别算法信息中进行查找,确定与元素应用类型相匹配的元素识别算法信息。
通过确定元素识别算法信息,能够基于不同的元素识别算法信息对目标元素对象进行识别,提高了元素识别的精度和速度,使得界面元素探测识别操作更加简单。
S130、根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息。
在本方案中,基于元素识别算法信息首先对鼠标移动位置的元素对象进行识别,然后执行操作得到目标元素对象。
在本技术方案中,可选的,根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象,包括:
根据所述元素识别算法信息,调用目标接口对鼠标移动位置进行识别,得到元素对象;其中,所述目标接口包括应用程序与钩子接口、网页浏览与钩子接口、浏览器扩展与钩子接口以及访问桥接器与钩子接口;
对所述元素对象进行字符串转换,得到目标元素对象。
在本实施例中,若元素应用类型为Win32桌面程序,则基于Win32桌面程序元素识别算法信息调用应用程序与钩子接口获取元素对象,并将元素对象进行字符串转换,得到目标元素对象。若元素应用类型为IE浏览器,则基于IE浏览器元素识别算法信息调用网页浏览与钩子接口获取元素对象,并将元素对象进行字符串转换,得到目标元素对象。若元素应用类型为webkit内核浏览器,则基于webkit内核浏览器元素识别算法信息调用浏览器扩展与钩子接口获取元素对象,并将元素对象进行字符串转换,得到目标元素对象。若元素对象为java桌面程序,则基于Java桌面程序元素识别算法信息调用访问桥接器与钩子接口获取元素对象,并将元素对象进行字符串转换,得到目标元素对象。
在本方案中,获得目标元素对象后,对目标元素对象进行校验,若校验成功,则返回目标元素对象至调用方;若失败,则返回空目标元素对象至调用方。
示例性的,图3是本申请实施例一提供的目标元素对象识别的流程图,如图3所示,由RPA(Robotic process automation,机器人流程自动化)调用方打开鼠标和键盘钩子,基于元素探测器获得元素应用类型。并通过元素探测器根据元素应用类型,调用统一封装识别层中与该元素应用类型相匹配的元素识别算法信息,并基于该元素识别算法信息对元素对象进行解析,并将元素对象转换成字符串形式的目标元素对象。
通过聚合各类元素识别算法信息并对它们进行封装和大量的调优处理,可自动适应不同情况系统和环境,提高了元素对象识别的效率,使得元素自动探测识别操作更加简单。
在本技术方案中,可选的,在根据所述元素识别算法信息,调用目标接口对鼠标移动位置进行识别,得到元素对象之后,所述方法还包括:
根据所述元素对象,确定子元素集合;
判断鼠标移动位置是否处于子元素集合构成的四边形内;
若处于,则计算子元素集合中元素的面积,得到目标面积;
根据所述目标面积,对所述鼠标移动位置的元素对象进行标记。
在本方案中,计算机系统的元素是基于树型关系构建而成的。元素树的根元素是桌面对象,桌面的子元素是各应用程序的主窗体;孙元素是各类控件容器及各类控件。树的大小和深度取决于界面的复杂度;元素面积的大小取决于界面的布局。鼠标移动到元素的表面上,如果多个元素的面积相交时直接通过UIA和document的FromPoint接口就会出现元素识别错误的可能,则需要对鼠标移动位置的元素面积进行计算,确定最小目标面积。
在本实施例中,通过UIA或document对象获取鼠标屏幕坐标里的元素E,根据元素树找出E元素和它的子元素集合U,判断鼠标移动位置是否处于子元素集合构成的四边形内,若处于,则计算出子元素集元素的面积并按面积由小到大排序,将做小的面积作为目标面积,并根据目标面积,以高亮框的形式对鼠标移动位置的元素对象进行标记。高亮框出现在用户想要获取的元素上面,用户只要单击鼠标左键inspector就返回UIElement对象到调用方。
通过重叠元素最小交集面积计算方法准确获取目标元素,提高了元素探测和识别的正确率。
在本技术方案中,可选的,判断鼠标移动位置是否处于子元素集合构成的四边形内,包括:
判断鼠标移动位置与四边形的每条边组成的三角形面积之和是否等于四边形面积;或,判断鼠标移动位置与四边形的每条边的夹角之和是否等于四边形角度;或,判断鼠标移动位置与四边形的交点是否满足预设数量条件。
在本实施例中,若鼠标移动位置与四边形的每条边组成的三角形面积之和等于四边形面积,则鼠标移动位置在四边形的内部;若鼠标移动位置与四边形的每条边的夹角之和等于360度,则鼠标移动位置在四边形的内部。
其中,数量条件用于表征鼠标移动位置与四边形的交点的约束条件,可以设置数量条件为奇数。即若鼠标移动位置与四边形的交点的数量为奇数,则鼠标移动位置在四边形的内部;若鼠标移动位置与四边形的交点的数量为偶数,则鼠标移动位置不在四边形的内部。
具体的,从鼠标移动位置出发引一条射线,获得射线和四边形所有边的交点数目。若有奇数个交点,则说明鼠标移动位置在四边形的内部;若有偶数个交点,则说明鼠标移动位置在四边形的外部。
通过重叠元素最小交集面积计算方法准确获取目标元素,提高了元素探测和识别的正确率。
本申请实施例所提供的技术方案,在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型,然后确定与元素应用类型相匹配的元素识别算法信息,并根据元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象。通过执行本技术方案,可以根据元素应用类型自动识别元素对象,可以有效的屏蔽各种应用场景中的技术复杂度,提高了元素的识别精度,减少了资源的浪费。
实施例二
图4是本申请实施例二提供的界面元素探测识别过程的示意图,本实施例二在实施例一的基础上进行进一步地优化。具体优化为:在根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象之后,所述方法还包括:根据所述元素识别算法信息的调用接口,对目标元素对象进行解析,得到目标元素;响应于输入操作,对所述目标元素进行修改,得到修改后的目标元素。其中,未在本实施例中详尽描述的内容详见实施例一。如图4所示,该方法包括以下步骤:
S410、在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;
S420、确定与所述元素应用类型相匹配的元素识别算法信息;
S430、根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息;
S440、根据所述元素识别算法信息的调用接口,对目标元素对象进行解析,得到目标元素;
在本实施例中,调用接口用于对目标元素对象进行解析。其中,调用接口包括UIA接口、MSHTML接口、浏览器扩展接口以及JAB桥接器接口。
在本方案中,可以根据与目标元素对象相关联元素应用类型确定元素识别算法信息,然后基于元素识别算法信息的调用接口,对目标元素对象进行解析,得到目标元素。
S450、响应于输入操作,对所述目标元素进行修改,得到修改后的目标元素。
在本实施例中,在对目标元素对象进行解析时,未找到目标元素,则返回操作失败。若找到目标元素,则可以获取元素属性值、设置元素属性值或者单击元素,并返回操作成功至调用方。
示例性的,图5是本申请实施例二提供的目标元素获取的流程图,如图5所示,目标元素获取包括接入目标元素对象,根据目标元素对象的元素应用类型,采用不同元素识别算法信息的调用接口,对目标元素对象进行解析,得到目标元素,并对目标元素进行修改。
本申请实施例所提供的技术方案,在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型,然后确定与元素应用类型相匹配的元素识别算法信息,并根据元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象。根据元素识别算法信息的调用接口,对目标元素对象进行解析,得到目标元素,响应于输入操作,对目标元素进行修改,得到修改后的目标元素。通过执行本技术方案,可以根据元素应用类型自动识别元素对象,可以有效的屏蔽各种应用场景中的技术复杂度,提高了元素的识别精度,减少了资源的浪费。
实施例三
图6是本申请实施例三提供的界面元素探测识别装置的结构示意图,如图6所示,界面元素探测识别装置包括:
元素应用类型获取模块610,用于在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;
元素识别算法信息确定模块620,用于确定与所述元素应用类型相匹配的元素识别算法信息;
目标元素对象得到模块630,用于根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息。
在本技术方案中,可选的,元素应用类型获取模块610,具体用于:
通过预先确定的识别层接口对象获取元素探测器;
基于所述元素探测器,确定与鼠标移动位置相关联的元素应用类型。
在本技术方案中,可选的,元素识别算法信息确定模块620,具体用于:
从预先确定的候选元素识别算法信息中进行查找,确定与所述元素应用类型相匹配的元素识别算法信息;其中,所述候选元素识别算法信息包括Win32桌面程序元素识别算法信息、IE浏览器元素识别算法信息、webkit内核浏览器元素识别算法信息和Java桌面程序元素识别算法信息。
在本技术方案中,可选的,目标元素对象得到模块630,包括:
元素对象得到单元,用于根据所述元素识别算法信息,调用目标接口对鼠标移动位置进行识别,得到元素对象;其中,所述目标接口包括应用程序与钩子接口、网页浏览与钩子接口、浏览器扩展与钩子接口以及访问桥接器与钩子接口;
目标元素对象得到单元,用于对所述元素对象进行字符串转换,得到目标元素对象。
在本技术方案中,可选的,目标元素对象得到模块630,还包括:
子元素集合确定单元,用于根据所述元素对象,确定子元素集合;
鼠标移动位置判断单元,用于判断鼠标移动位置是否处于子元素集合构成的四边形内;
目标面积得到单元,用于若处于,则计算子元素集合中元素的面积,得到目标面积;
元素对象标记单元,用于根据所述目标面积,对所述鼠标移动位置的元素对象进行标记。
在本技术方案中,可选的,鼠标移动位置判断单元,具体用于:
判断鼠标移动位置与四边形的每条边组成的三角形面积之和是否等于四边形面积;或,判断鼠标移动位置与四边形的每条边的夹角之和是否等于四边形角度;或,判断鼠标移动位置与四边形的交点是否满足预设数量条件。
在本技术方案中,可选的,所述装置还包括:
目标元素得到模块,用于根据所述元素识别算法信息的调用接口,对目标元素对象进行解析,得到目标元素;
目标元素修改模块,用于响应于输入操作,对所述目标元素进行修改,得到修改后的目标元素。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例四
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种界面元素探测识别方法,该方法包括:
在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;
确定与所述元素应用类型相匹配的元素识别算法信息;
根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的界面元素探测识别操作,还可以执行本申请任意实施例所提供的界面元素探测识别方法中的相关操作。
实施例五
本申请实施例提供了一种电子设备,该电子设备中可集成本申请实施例提供的界面元素探测识别装置。图7是本申请实施例五提供的一种电子设备的结构示意图。如图7所示,本实施例提供了一种电子设备700,其包括:一个或多个处理器720;存储装置710,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器720执行,使得所述一个或多个处理器720实现本申请实施例所提供的界面元素探测识别方法,该方法包括:
在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;
确定与所述元素应用类型相匹配的元素识别算法信息;
根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息。
当然,本领域技术人员可以理解,处理器720还实现本申请任意实施例所提供的界面元素探测识别方法的技术方案。
图7显示的电子设备700仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,该电子设备700包括处理器720、存储装置710、输入装置730和输出装置740;电子设备中处理器720的数量可以是一个或多个,图7中以一个处理器720为例;电子设备中的处理器720、存储装置710、输入装置730和输出装置740可以通过总线或其他方式连接,图7中以通过总线750连接为例。
存储装置710作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的界面元素探测识别方法对应的程序指令。
存储装置710可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置710可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置710可进一步包括相对于处理器720远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏、扬声器等电子设备。
本申请实施例提供的电子设备,可以达到有效的屏蔽各种应用场景中的技术复杂度,提高了元素的识别精度,减少了资源的浪费的目的。
上述实施例中提供的界面元素探测识别装置、存储介质及电子设备可执行本申请任意实施例所提供的界面元素探测识别方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的界面元素探测识别方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

Claims (10)

1.一种界面元素探测识别方法,其特征在于,包括:
在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;
确定与所述元素应用类型相匹配的元素识别算法信息;
根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息。
2.根据权利要求1所述的方法,其特征在于,获取与鼠标移动位置相关联的元素应用类型,包括:
通过预先确定的识别层接口对象获取元素探测器;
基于所述元素探测器,确定与鼠标移动位置相关联的元素应用类型。
3.根据权利要求1所述的方法,其特征在于,确定与所述元素应用类型相匹配的元素识别算法信息,包括:
从预先确定的候选元素识别算法信息中进行查找,确定与所述元素应用类型相匹配的元素识别算法信息;其中,所述候选元素识别算法信息包括Win32桌面程序元素识别算法信息、IE浏览器元素识别算法信息、webkit内核浏览器元素识别算法信息和Java桌面程序元素识别算法信息。
4.根据权利要求1所述的方法,其特征在于,根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象,包括:
根据所述元素识别算法信息,调用目标接口对鼠标移动位置进行识别,得到元素对象;其中,所述目标接口包括应用程序与钩子接口、网页浏览与钩子接口、浏览器扩展与钩子接口以及访问桥接器与钩子接口;
对所述元素对象进行字符串转换,得到目标元素对象。
5.根据权利要求4所述的方法,其特征在于,在根据所述元素识别算法信息,调用目标接口对鼠标移动位置进行识别,得到元素对象之后,所述方法还包括:
根据所述元素对象,确定子元素集合;
判断鼠标移动位置是否处于子元素集合构成的四边形内;
若处于,则计算子元素集合中元素的面积,得到目标面积;
根据所述目标面积,对所述鼠标移动位置的元素对象进行标记。
6.根据权利要求5所述的方法,其特征在于,判断鼠标移动位置是否处于子元素集合构成的四边形内,包括:
判断鼠标移动位置与四边形的每条边组成的三角形面积之和是否等于四边形面积;或,判断鼠标移动位置与四边形的每条边的夹角之和是否等于四边形角度;或,判断鼠标移动位置与四边形的交点是否满足预设数量条件。
7.根据权利要求1所述的方法,其特征在于,在根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象之后,所述方法还包括:
根据所述元素识别算法信息的调用接口,对目标元素对象进行解析,得到目标元素;
响应于输入操作,对所述目标元素进行修改,得到修改后的目标元素。
8.一种界面元素探测识别装置,其特征在于,包括:
元素应用类型获取模块,用于在监视窗口消息的钩子打开的情况下,获取与鼠标移动位置相关联的元素应用类型;其中,所述元素应用类型包括Win32桌面程序、IE浏览器、webkit内核浏览器和java桌面程序;
元素识别算法信息确定模块,用于确定与所述元素应用类型相匹配的元素识别算法信息;
目标元素对象得到模块,用于根据所述元素识别算法信息,对鼠标移动位置的元素对象进行识别,得到目标元素对象;其中,所述元素对象包括基本属性信息、隶属对象信息、基本操作信息以及对象转选择串信息。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的界面元素探测识别方法。
10.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的界面元素探测识别方法。
CN202210081823.6A 2022-01-24 2022-01-24 一种界面元素探测识别方法、装置、存储介质及电子设备 Pending CN114428575A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210081823.6A CN114428575A (zh) 2022-01-24 2022-01-24 一种界面元素探测识别方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210081823.6A CN114428575A (zh) 2022-01-24 2022-01-24 一种界面元素探测识别方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN114428575A true CN114428575A (zh) 2022-05-03

Family

ID=81312707

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210081823.6A Pending CN114428575A (zh) 2022-01-24 2022-01-24 一种界面元素探测识别方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN114428575A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637662A (zh) * 2022-05-13 2022-06-17 杭州未斯科技有限公司 一种rpa流程自动化录制控制方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801224B1 (en) * 2000-09-14 2004-10-05 International Business Machines Corporation Method, system, and program for generating a graphical user interface window for an application program
US20070043701A1 (en) * 2005-08-17 2007-02-22 Microsoft Corporation Query-based identification of user interface elements
CN109542553A (zh) * 2018-10-26 2019-03-29 北京慧流科技有限公司 用户界面ui元素的信息抓取方法及装置、及存储介质
CN112182468A (zh) * 2020-10-14 2021-01-05 北京新纽科技有限公司 一种兼容客户端界面元素与网页页面元素的定位和解析方法
CN112631704A (zh) * 2020-12-26 2021-04-09 深圳集智数字科技有限公司 一种界面元素识别方法、装置、存储介质及电子设备
CN113176922A (zh) * 2021-04-30 2021-07-27 上海云扩信息科技有限公司 一种通用的界面元素自动探测系统
CN113268236A (zh) * 2021-05-20 2021-08-17 湖南大学 一种rpa系统中基于功能增强技术的ui元素拾取方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801224B1 (en) * 2000-09-14 2004-10-05 International Business Machines Corporation Method, system, and program for generating a graphical user interface window for an application program
US20070043701A1 (en) * 2005-08-17 2007-02-22 Microsoft Corporation Query-based identification of user interface elements
CN109542553A (zh) * 2018-10-26 2019-03-29 北京慧流科技有限公司 用户界面ui元素的信息抓取方法及装置、及存储介质
CN112182468A (zh) * 2020-10-14 2021-01-05 北京新纽科技有限公司 一种兼容客户端界面元素与网页页面元素的定位和解析方法
CN112631704A (zh) * 2020-12-26 2021-04-09 深圳集智数字科技有限公司 一种界面元素识别方法、装置、存储介质及电子设备
CN113176922A (zh) * 2021-04-30 2021-07-27 上海云扩信息科技有限公司 一种通用的界面元素自动探测系统
CN113268236A (zh) * 2021-05-20 2021-08-17 湖南大学 一种rpa系统中基于功能增强技术的ui元素拾取方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637662A (zh) * 2022-05-13 2022-06-17 杭州未斯科技有限公司 一种rpa流程自动化录制控制方法及系统
CN114637662B (zh) * 2022-05-13 2022-08-26 杭州未斯科技有限公司 一种rpa流程自动化录制控制方法及系统

Similar Documents

Publication Publication Date Title
US10983660B2 (en) Software robots for programmatically controlling computer programs to perform tasks
US6810522B2 (en) Method and system for associating parameters of containers and contained objects
US9588870B2 (en) Time travel debugging for browser components
US8682636B2 (en) Non-client-specific testing of applications
US8949812B2 (en) System and method for updating hard-coded dependencies
EP2339465A1 (en) Location independent execution of user interface operations
US20210209526A1 (en) Landing page processing method, device and medium
Montoto et al. Automated browsing in AJAX websites
CN114428575A (zh) 一种界面元素探测识别方法、装置、存储介质及电子设备
US20040040030A1 (en) System and method for integrating resources in a network
US20230118838A1 (en) Advanced agent instrumentation for opentelemetry implementations
US11954014B2 (en) Automated unit testing in a mainframe CICS environment
CN111679828A (zh) 一种数据处理的方法及装置、电子设备、存储介质
US20130132930A1 (en) Capturing telemetry data by dynamic language engine
CN114116509A (zh) 程序分析方法、装置、电子设备和存储介质
CN113687880A (zh) 一种调用组件的方法、装置、设备和介质
Tudruj et al. PEGASUS DA framework for distributed program execution control based on application global states monitoring
US20170068523A1 (en) Modular Computer Application Development and Usage
Frisbie Content Scripts
CN115421733A (zh) 小程序转换的评估方法、装置、设备及存储介质
Cui The Discussion of Cross-platform Mobile Application Development Base on Phone Gap Method
CN117499060A (zh) 网页攻击性的检测方法、装置、设备及存储介质
Montoto et al. Web avigation Automation in AJAX Websites

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