范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

RPA界面元素智能自适应定位与操控技术金克

  什么是RPA?RPA(Robotic Process Automation,机器人流程自动化)是通过特定的、可模拟人类在计算机界面上进行操作的技术,它可以按规则自动执行相应的流程任务,代替或辅助人类完成相关的计算机操作,从而节约人力成本,提高生产效率。
  从RPA的定义就可以看出,对计算机界面的操控是RPA的核心之一。要实现对计算机界面的操控,就必须用到RPA界面元素定位和操控技术。
  元素定位与操控技术
  界面元素是指用于构建系统或应用程序的所有图形用户界面部分,例如窗口、输入框、按钮等。通过显示器、键盘、鼠标等计算机外部设备,人能够实现在指定输入框输入文本、点击指定按钮等操作,和操作系统以及业务系统进行交互。同样的,RPA要代替人完成这些操作,就需要能够定位和操控这些界面元素。
  界面元素定位与操控方法有很多,主要区别在于是否使用GUI(Graphical User Interface, 图形用户接口)自动化技术。非GUI自动化技术有:绝对坐标定位、图像匹配定位、基于消息操作、模拟键鼠操作等。GUI自动化技术有:Win32、MSAA、UIA、JAB、SAP、Citrix Virtual Channel、RDP Virtual Channel、Selenium、Chrome Extension等。通常来说,GUI自动化技术能获取到的界面元素的信息更多,支持的操作也更多,但同时局限性也更大,一种GUI自动化技术往往只支持几个界面元素框架,实际使用起来也会更困难。
  下面列举几种常用的自动化技术并给出优缺点分析。
  01 绝对坐标定位
  绝对坐标,是指屏幕中固定的坐标位置,当界面元素总是处于屏幕中固定坐标位置时,就可以使用绝对坐标来进行定位。这个方法非常简单方便,在特定场景下非常好用。但是一般要求屏幕分辨率和应用窗口大小固定,而且无法保证定位到的界面元素是否正确。
  02 图像匹配定位
  图像匹配,在待匹配图像中寻找与目标图像相似性高的单个或多个目标,并获取目标的坐标位置。图像匹配可以和绝对坐标定位相结合,先使用绝对坐标定位,再用图像匹配做校验;也可以先划定屏幕中的某个区域,在此区域内进行图像匹配,以达到提高准确率、加速匹配过程的目的。
  图像匹配的方法非常多,模板匹配使用空间二维滑动模板进行匹配,将目标图像在待匹配图像中滑动;特征匹配提取图像的特征,再生成特征描述子,最后根据描述子的相似程度对两幅图像的特征之间进行匹配;深度学习也可用于图像匹配之中,例如,使用OCR技术可以定位到包含指定文本的图像。
  03 基于消息操作
  这里的消息指的是操作系统的消息。Windows 是一个消息驱动的系统,Windows的消息提供了应用程序之间、应用程序与Windows 系统之间进行通信的手段。通过对应用程序窗口发送特定的消息,可以实现对指定界面元素的点击输入等操作。
  图1 Windows消息机制
  04 模拟键鼠操作
  模拟键鼠可分为消息模拟、API模拟、驱动模拟三种。消息模拟基于windows的消息机制,向目标窗口发送键鼠消息。API模拟就是用Windows提供的API实现模拟输入。驱动模拟就是通过驱动程序,在系统内核里面操作I/O端口,给连接键盘的集成电路发送指令,让它产生一个按下按键的信息,这样你的模拟输入对于所有程序来说就是从一个真实的设备发出的。
  05 Win32 API
  Win32 API是微软第一代应用程序可访问API。Win32 API出现在.NET之前,是底层的Windows API。它支持MFC、VB6、VCL、简单的WinForms等窗体。
  Win32自动化技术基于HWND(窗口句柄),一般需要通过 FindWindow、 EnumWindows 来查找目标窗口的句柄,然后再调用其它 API,例如 GetWindowText、GetWindowRect等来获取窗口属性,以此来定位目标元素。定位到目标元素之后,可以通过Win32 API实现对目标元素的操控。例如使用SetWindowText来设置显示的文字,使用SetActiveWindow来激活窗口等。
  优点:对标准Windows控件支持良好
  缺点:
  过于底层,调用复杂。例如:Win32 API查询窗体需要逐层获取窗体句柄进行遍历查找
  技术落后,用途不广。例如:Win32 API对新UI框架以及自定义控件的支持很差。
  06 MSAA
  MSAA(Microsoft Active Accessibility)是微软第二代应用程序可访问API。MSAA旨在帮助辅助技术产品与应用程序(或操作系统)的标准和自定义用户界面元素进行交互。它支持WFC、VB6、VCL、WinForms、WPF等窗体。
  MSAA 主要基于 COM 技术。提供信息的应用程序被称为 Server;获取信息的应用程序被称为Client。首先Client调用AccessibleObjectFromWindow传入Server窗口的HWND。
  然后AccessibleObjectFromWindow函数向Server发送WM_GETOBJECT消息。Server创建并实现了IAccessible,之后通过LresultFromObject 把IAccessible 返回给Client。最后Client调用IAccessible定位和操作Server中的界面元素。
  优点:
  相较Win32 API更简单易用。使用者只需要和 IAccessible 进行交互,也不需要直接使用windows消息来操作目标元素。相较Win32 API支持了部分自定义控件。前提是开发人员在实现自定义控件的同时实现了 IAccessible 的接口。
  缺点:
  功能不全。MSAA技术的初衷是为了方便残疾人使用Windows 程序,对自动化来说还是不够,仅支持对界面元素的一些基本操作。
  07 UIA
  UIA(Microsoft Active Accessibility)是用于替代MSAA的应用程序可访问技术。和MSAA不同,UIA技术的初衷是提供UI的可访问性。它支持MFC、WinForms、WPF、Store apps、Qt等窗体。
  UIA定义了全新的、针对UI自动化的接口和模式。分别是支持对界面元素进行遍历和条件化查询的TreeWalker和FindAll。定义了读写UI元素属性的UIA Property, 包括Name、 ID、Type、ClassName、Location、 Visibility等等。定义了UI元素行为的UIA Pattern, 比如Select、Expand、Resize、 Check、Value等等。还引入了UIA Event接口,可以让测试程序在某些事件发生后得到通知,比如新窗口打开事件等。
  图2 UIA架构图
  优点:
  支持的UI框架更丰富。例如WPF和Silverlight中的子窗口和控件并不是传统的HWND,所以Win32 API和MSAA无能为力,而UIA可以直接支持这两种程序。
  兼容传统的Win32和MSAA模式。前面提到过,UIA技术的内部实现可以多样化。针对传统程序,UIA可以在内部实现中借用MSAA的接口和直接调用Win32 API。
  高度抽象,易于使用。例如执行点击按钮操作, UIA 统一归类于Invoke, 无论是Win32、 WPF还是Silverlight按钮,都可以通过Invoke实现点击,不用关心具体实现方式是模拟键鼠还是调用Windows API。
  缺点:编码过程复杂。对于一个UI窗口,里面可能有几十个子控件或者子窗口。在编写测试代码的时候, 如果对这些子元素的获取,操作不能简化, 势必导致代码冗繁,难以维护。
  08 JAB
  JAB(Java Access Bridge)是一项在Microsoft Windows动态链接库(DLL)中公开Java Accessibility API的技术,使实现Java Accessibility API的 Java应用程序对Windows系统上的辅助技术可见。
  要使用JAB技术,需要在启动Java程序前配置好所需的JAB环境。Client需要事先加载WindowsAccessBridge.dll获取Server提供的接口,通过FindWindow获取窗口句柄,用IsJavaWindow来判断筛选出Java程序的窗口。拿到窗口后,可以根据窗口句柄获取虚拟机编号vmID 和根节点ac。之后就可以使用vmID和ac,通过之前Server提供的接口,来获取子节点界面元素的vmID和ac、获取界面元素的信息、以及调用界面元素支持的点击输入等方法。
  JAB技术的初衷也是为了方便残疾人使用,因此对自动化技术的支持并不好。
  图3 JAB架构图
  09 SAP
  SAP 提供了 Scripting Engine 来进行用户界面自动化。SAP Scripting Engine 是一套基于 COM 的接口,提供了 SAP 全面的脚本化支持。
  10 Citrix Virtual Channel
  Citrix 提供了 Virtual Channel 的机制来满足 Client 和 Server 之间的通讯需求。利用 Virtual Channel,我们可以向 Citrix 虚拟桌面发送任意指令、获取业务所需信息。Citrix 是基于 ICA (Independent Computing Architecture) 协议来实现的。
  图4 Citrix Virtual Channel
  11 RDP Virtual Channel
  RDP (Remote Desktop Protocol) 是微软开发的一套远程桌面协议。RDP 也提供了 Virtual Channel 机制来满足 Client 和 Server 之间的通讯需求。
  图5 RDP Virtual Channel
  12 Selenium
  Selenium是一个开源的Web自动化测试工具,它支持所有主流的浏览器,可以实现打开浏览器,获取网页界面元素数据,保存网页截屏等操作。
  图6 Selenium执行过程
  13 Chrome Extension
  Chrome 浏览器插件是允许开发者自定义用户使用体验的一种技术。可以利用 Web 技术,如 HTML、CSS、JavaScript 来自定义浏览体验。
  智能定位与操控技术
  从之前的介绍可以看到,系统和应用程序的界面元素框架种类繁多,不同应用程序需要的自动化技术不尽相同,例如Chrome浏览器需要使用Web自动化技术、Oracle ERP需要使用Java自动化技术、SAP需要使用SAP自动化技术;同一种应用程序在不同操作系统上,自动化的实现方式也有所差别,例如大多数RPA产品都依赖Windows的.Net框架来操控应用程序,在Linux等操作系统上完全无法使用。
  以Chrome浏览器为例,多数RPA产品会选择使用开源的Selenium来实现对Chrome浏览器的自动化操控。Selenium是一个著名的Web应用测试工具,它提供了丰富的API接口,可以非常方便的被Python、Java等语言调用,同时也存在驱动版本必须和浏览器版本严格对应,以及容易被网页检测到等缺点。Selenium无法用于操控其他应用程序,因此需要单独为浏览器设计一整套自动化控制模块。较为成熟的RPA产品通常会选择自研浏览器插件,用插件实现相同的功能。自研浏览器插件可以将浏览器和其他应用程序的自动化接口进行统一,但是遗憾的是,很多RPA产品并没有这么做。将浏览器作为特例或许会方便熟悉网页测试技术的开发者快速上手,但对于不熟悉相关技术的开发者,无疑增加了巨大的学习成本。
  由于上述原因,RPA流程开发需要考虑流程共涉及几种自动化技术,会在几种操作系统上运行。RPA开发人员不仅需要了解业务系统的每一部分使用了何种自动化技术,在开发中选用正确的模块,还需要了解流程会在哪些操作系统上运行,为每种操作系统开发一个单独的流程。随着RPA涉及业务系统的范围扩大,以及国产操作系统的普及,流程开发成本将大幅提高。
  RPA界面元素智能自适应定位与操控技术将这些自动化技术进行了统一,对不同操作系统做了兼容。在RPA流程开发过程中不需要区分自动化技术,同一流程可以在不同操作系统中直接运行,能大幅降低开发成本。
  智能定位与操控的技术实现
  RPA界面元素智能自适应定位与操控技术融合了当前主流的自动化技术,通过高度抽象实现不同自动化技术的统一调用,通过基于规则的自动化技术切换器实现不同自动化技术的智能切换。
  图7 智能元素捕获器架构图
  以捕获和操作使用JAB自动化技术的Java应用程序为例。使用者先用界面元素分析器捕获目标元素,此时根据鼠标点击的位置,界面元素分析器可以获得目标元素所在的窗口以及窗口所属的应用程序并拿到窗口和应用程序的信息。根据这些信息,自动化技术切换器将根据规则选择最合适的自动化技术。在这个例子中会智能切换到JAB自动化技术。接下来,界面元素分析器会调用"获取指定位置下的目标元素"这个方法获取目标元素,该方法的底层实现基于JAB自动化技术,该目标元素所具有的属性和支持的方法也都是通过JAB自动化技术得到的。这些属性和方法也是抽象的,通过JAB自动化技术获取到的属性role会被映射为标准的control,通过JAB自动化技术获取到的方法Click会被映射为标准的Invoke。使用者想要实现点击目标元素,只需要按照统一的规则调用Invoke方法即可,不需要关心该方法底层是如何实现的。
  定位目标元素还存在一个很常见的问题,目标元素的属性和在UI中的位置偶尔会发生变化。例如有些窗口标题会带版本号,一旦更新应用程序就会发生变化。当这些发生变化时,就有可能定位失败。为了更好地定位元素,用户界面被抽象为了一个文档对象模型(Document Object Model),支持使用CSS语法和XPath语法的元素选择器定位目标元素,元素选择器是一段文本,包含了元素的属性和层级关系,支持模糊匹配。
  图8 DOM 结构
  文档对象模型常用于操纵HTML和XML数据,它将整个文档抽象为逻辑上的对象,然后定义了访问和操作这些文档的方法。文档对象模型独立于任何系统平台和编程语言,使用文档对象模型提供的方法,可以构建文档、导航其结构以及添加、修改或删除元素和内容。用户界面也可以抽象成一个文档对象模型,形成一个树结构,每个界面元素都是用户界面树的一个节点,每个节点都是一个抽象的元素对象,有相同的属性和方法。在界面元素分析器和应用程序的通信过程中,跨系统兼容的自动化技术切换器会根据获取到的应用程序信息按照规则自动切换,对接相应的自动化技术接口,用获取到的界面元素信息来构建抽象元素对象以及文档对象模型。
  在元素分析器界面,可以看到用户界面树的整体结构和每个界面元素的各种属性,通过定位语句,可以定位到满足定位语句的目标元素。定位语句采用自研语法解析技术,同时支持CSS语法和XPath语法,支持按属性精准匹配、前缀匹配、后缀匹配和模糊匹配,支持描述元素间的后代关系、父子关系和兄弟关系,自由度极高,适应用户界面变化能力强。捕获元素后会自动生成适合的元素选择器,使用者也可以在此基础上手动修改以提高定位的灵活性和准确度。
  图9 Windows元素捕获器
  RPA界面元素智能自适应定位与操控技术同样支持国产操作系统,国产操作系统大多是基于Linux改造的,借助Qt-at-spi技术,可以通过Linux的调试接口获取到图形界面上应用程序的界面元素。针对不同的国产操作系统,具体实现细节有所区别。通过封装,实现了各国产操作系统和Windows操作系统接口的统一。
  图10 UOS元素捕获
  目前RPA界面元素智能自适应定位与操控技术已兼容WIN32、UIA、MSAA、JAVA、SAP、Chrome、IE、Firefox、X11等多种自动化技术。借助自动化技术智能切换方案,使用过程中选择器会智能切换自动化技术。切换方案同时支持自定义配置,可以应对特殊场景的需求。达观全能界面元素选择器的可拓展性很强,新的自动化技术可以通过公共接口无缝接入,改造和升级都十分方便,不会影响现有的RPA流程。
  RPA界面元素智能自适应定位与操控技术同时兼容多种操作系统,包括Windows7 SP1以上的主流Windows操作系统、MAC系统、国产麒麟、统信、中科方德系统等。RPA流程可以轻松在这些系统间迁移,相同应用程序的同一界面元素定位语句完全相同,相同操作的底层实现会根据当前运行的系统自动切换。相比之下,其他RPA产品多是基于Windows的Net框架实现的界面元素定位和操控,无法迁移到其他操作系统中运行的。
  未来展望
  01 兼容更多自动化技术
  目前,还有一些自动化技术没做到兼容,例如Citrix虚拟化应用、RDP远程桌面等。这些场景下仍然需要开发者采用相应的技术,做针对性开发。后续RPA界面元素智能自适应定位与操控技术将加入对更多自动化技术的支持,进一步优化RPA开发者的体验。
  02 兼容更多操作系统
  当下,国产操作系统发展迅速,麒麟、统信、中科方德等国产操作系统的市场越来越大,后续在这些国产操作系统上开发和运行RPA流程的需求也会越来越多。除此之外,移动设备上也有一些运行RPA流程的需求。兼容这些操作系统也同样在开发计划之内。
  03 开发基于图像的自动化技术
  虽然大多数应用程序都支持自动化技术,但仍有少数应用缺乏相关支持。达观全能界面元素定位和操控技术将依托公司的自研AI能力,开发图像自动化技术来解决这一问题。该技术会将用户界面按照不同层级进行智能分割,提取出不同层级的图像作为元素对象,通过图像技术构造用户界面树并提取出元素对象的属性信息。这一技术将彻底解决应用程序不支持自动化技术的问题,真正做到通用且无侵入的定位和操控界面元素。
  作者简介
  金克:达观数据技术副总裁,负责达观数据RPA产品团队组建和研发。在加入达观之前,联合创立"飞语云通讯"并担任CTO,在系统工程开发、大规模并发网络、Go语言程序设计等方面有丰富的经验,先后在格尔软件,爱克发医疗,盛大创新院,飞语等公司就职,有十余年的软件开发经验,带领团队参与了信息安全,医疗影像,云存储,支付和计费系统、云通讯平台等的研发工作。2021年上海"张江工匠"获得者。

全球经济衰退高达98,当心你的钱袋子很多人有一个错误的想法,觉得非要出现那种家家户户饿肚子,企业全部在破产边缘挣扎,失业率达到30才算经济衰退。那不叫经济衰退,那叫国难当头。实际上,失业率大于8,企业普遍停止扩张,个屡陷丢件损件风波,顺丰到底怎么了?雷达财经出品文孟帅编深海顶着中国第一大全球第四大快递物流综合服务商光环的顺丰,近来麻烦不断。近期,顺丰先是卷入寄丢11000元手机仅赔1000的争议,而后又接连上演客户寄丢20克黄4000元!iPhone新机爆款预定,侧面指纹来了今年的iPhone14系列的口碑可以说是两极分化,最受欢迎的是iPhone14Pro系列,而受冷落的自然还是iPhone14标准版,前者好不容易改变了刘海屏设计,增加了灵动岛,还有心疼首批用户,iPhone14Pro被曝充电时重启单卡槽后壳掉漆9月份是iPhone14系列的主场,特别是全面升级了灵动岛A1648W镜头的iPhone14Pro版受到了很多用户的喜爱,目前据悉iPhone14标准版的销量远不如Pro版,标准版抚顺融入沈阳现代化都市圈绘就融合发展新蓝图聚焦全省一圈一带两区区域发展格局,我市主动承担起沈阳现代化都市圈和辽东绿色经济区建设双重使命,坚持沈抚同城化发展方向,以交通为先导加速推进沈抚基础设施互联互通,实现产业集群化发展功手机导航上线新功能,红灯等多久不再开盲盒近日,不少驾驶员发现一些手机导航软件上线了一项新功能,既能实时显示红灯倒计时读秒,也能计算需要等待的红绿灯轮次,红灯等多久不再开盲盒。国庆假期出行高峰即将到来,这项功能好不好用?用体验服9。28更新8英雄调整,5英雄削弱,嫦娥跌落神坛,吕布优化文静海君王者荣耀体验服9月28号更新,在本次的更新中一共有8个英雄的技能和属性有调整,在这其中涉及到很多目前的焦点英雄,就比如嫦娥,比如太乙真人。嫦娥的调整嫦娥最近的争议非常大,大被称为童话世界的四川九寨沟为何被誉为地球上最美丽的伤疤(上图四川九寨沟著名景点诺日朗瀑布,此图片拍摄于夏日)2017年8月8日21时19分,位于四川省北部阿坝州九寨沟县发生7。0级地震,震中位于九寨沟核心景区西部5公里处的比芒村。这是沈阳东部旅游大道串联沈城50余景区沈阳东部旅游大道主体工程全面完成。辽沈晚报记者查金辉摄十一假期到来之前,沈阳东部旅游大道主体工程全面完成,串联起沈城50余个景区,为市民驾车出游提供更多便利。9月27日上午,记者来2023年新农合缴费已启动,一年没使用等于白交了吗?2023年新农合开始缴费,缴费后一年没生病没使用报销是不是等于白交钱了?如果年底还没使用,缴费全额退还给个人可行吗?9月份,各省市的新农合缴费全面拉开序幕,比如近日河南开封市,最新郑成功年仅39岁暴病而死,临终前为何下令处死妻子及长子孙子?在我国的历史长河里,有诸多人物闪耀着璀璨的光芒。他们为历史的进步,社会的前进,做出了巨大的贡献。可是,俗话说,金无足赤人无完人,这是说每一个人都不是完美的,都有或多或少的缺点。就像
溢价35!北京国管出手,成为这家券商大股东!首创证券IPO障碍扫清?第一创业大股东将要再度变更。9月9日晚第一创业公告称,第一大股东北京首都创业集团有限公司(以下简称首创集团)与北京国有资本运营管理有限公司(以下简称北京国管)签署股份转让协议,后者海归人才就业呈现新趋势缓解就业困境途径多样2022年7月7日,人社部印发关于开展人力资源服务机构稳就业促就业行动的通知,要求各地充分发挥人力资源服务机构匹配供需专业高效优势,不断扩大市场化就业服务供给,切实增强促就业实效。科技部副部长邵新宇已任湖北省领导据湖北省政府网消息,9月9日,湖北省教育表彰会议在汉举行。省领导郭元强王祺扬陈新武邵新宇王立等参加会议。这是邵新宇首次以湖北省领导身份亮相,排名在三名湖北省委常委郭元强王祺扬陈新武警惕!日本正搜集中国战斗机机密,策反俄军事专家,还想接触苏30随着日本进一步将自己绑在了美国的亚太军事战车上,成为美国在亚太地区的军事马前卒之后,日本对中国军力的关注度也在不断提升。根据印度欧亚时报的相关报道,目前日本方面已经向印度提出请求,睿蓝RL9申报信息曝光两种座椅布局提供换电模式在工信部刚刚公布的第362批新车公告上,我们发现了睿蓝汽车旗下的全新RL9车型的申报信息。新车为一款纯电动中型SUV,提供6座和7座两种布局,并且支持换电模式。外观方面,RL9采用孤独的跋涉者理查德耶茨是孤独的写作者,意大利钢琴大师米凯兰杰利则是音乐世界的独行侠。理查德耶茨有焦虑时代的伟大作家之美称。1962年,他出版了自己的第一本短篇小说集十一种孤独,被誉为纽约的都柏关注继五菱宏光S后,小鹏P7登陆极限竞速地平线5文懂车帝原创邢秋鸿懂车帝原创行业近日,极限竞速Forza官方宣布,全新中国车小鹏P7现已加入极限竞速地平线5。目前,2016蔚来EP92013五菱宏光S2015名爵MG32005名若女性有这样的特征,很容易怀孕,看看你有几个身为女人的我对怀孕也是有一定了解的,当初我自己在备孕期间已经走了很多弯路,这也是因为我没有以下几个特征的原因,除了年龄大,体重不合适,大姨妈也不稳定之外,每天还总是为此着急焦虑,这一起来种植小农场吧宝山这场劳动教育课超有趣教育家蔡元培先生曾说家庭者,人生最初之学校也。劳动教育可分为社会劳动教育家庭劳动教育和学校劳动教育,但又不仅局限于课堂上劳动知识的讲解传授,还需要小朋友身体力行参加劳动教育实践活动外媒饭后两小时才能游泳?避免暴饮暴食能降低危险原标题医生解惑饭后两小时才能游泳吗?据西班牙先锋报网站8月11日报道,以前,孩子们一直被要求饭后必须等上两个小时才能泡澡或游泳,很少有孩子敢向父母提出提前下水的要求。而今天,大多数一个天才学生,就这样被父亲毁了有的父母常说没有谁,比我更懂孩子。但这句话中,究竟我分量更重,还是孩子?今天分享一篇文章,也是很多父母的教育盲区。愿每一个孩子,不仅被父母允许与鼓励,还能跟他们分离。大家好,我是李