幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

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

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

薇娅出事背后的投资者何去何从?腾讯阿里小米B站都曾进场12月20日,薇娅偷逃税、被追缴并处罚款13。41亿的消息,瞬间刷爆网络。出事之后,薇娅某宝直播间及微博账号立马被封,同时部分偷逃税公司也已注销。薇娅的偷税被罚,就此撕开……冬奥会为什么有个滑雪项目还得背着步枪?图为冬季两项创意漫画。张帆绘摄(冬奥问冀)冬奥会为什么有个滑雪项目还得背着步枪?中新网石家庄12月29日电要说冬季奥林匹克运动会,什么雪上项目需要背着步枪?那自然是……哈利波特魔法觉醒手游烟花卡组玩法及搭配方法介绍手游巴士2021年12月23日讯:在哈利波特这款手游中有很多玩家都对烟花卡组情有独钟,虽然该卡组的表现不错,不过也需要玩家们知道该卡组应该怎么玩,还有具体的搭配办法,接下来就由……小凯文波特客战掘金总是很难打我们三节结束就没油了直播吧11月29日讯火箭队今日客场113129不敌掘金队,火箭队的主力球员基本都未在末节登场。赛后,火箭队后卫小凯文波特接受采访时说道:我觉得我们在第三节的时候相当拼,在……王者荣耀对局环境有多差王者20星,今天对局十一场,下面是对局概况。第一局:我正常玩,打野司马懿最后一秒惩戒换闪现,局内演队友。第一局:演员司马懿第二局:演员那可露露带闪现打野。……2021之老家的记忆我的老家在辽宁,山海关的北边。浙江和辽宁隔得非常远。它们相距了将近两千公里。从中国的南边到东北角,几乎跨越了半个中国地图。在这个距离里,只有飞机与高铁的线路将两者牵连着。……2022年世界航天发射预报(附发射详单表)来源《卫星与网络》公众号原作者刘进军这是来自未来的报告!2022年,世界航天发射将看到许多新科技、新动向、新奇迹和世界航天的变化。2022年,世界航天发射具有……复杂化等于进步还是退步?NBA2K22的这些改变,你能接受吗篮球作为世界上数一数二受到关注的运动,职业篮球的表现自然也是许多人茶余饭后的话题,甚至是一起热衷的项目。每年打造美国职篮NBA改编游戏的2K也是每一年都受到挑战,在让游戏更拟真……RNG小虎迎来证明之战!中单首秀确定打Knight,坦言自己各位LPL的观众和英雄联盟召唤师大家好,这里是天下游戏汇。在昨天的德玛西亚杯比赛中,TES战队是在A组中拿下了31的成绩,因为胜负关系原因以小组第一的身份顺利晋级八强,而……ampampquot体操皇后ampampquot刘璇36岁嫁刘璇文懒虫说娱编辑懒虫说娱2000年,刘璇出现在中国奥运会女子体操名单上,那时候她已经有21岁。要知道,在这之前能够参加比赛的选手都是在17岁之内的年轻……小米宣布新一轮组织架构调整潘九堂担任参谋长李涛主持质量委员会11月26日下午消息,小米集团今日宣布新一轮的组织架构调整及干部任命,涉及集团管理层、手机部、中国区、互联网业务部几个部门,以持续提升组织管理能力,向三年时间全球第一的目标全面……9。99级曲速引擎可达到万倍光速,会是未来星际航行的科技吗?有很多问题困扰着人类。面对浩瀚星空,人类目前最重要的问题是:宇宙实在太大了!宇宙有多大?我们不知道,或许永远也不知道。可观测宇宙大约930亿光年。由于宇宙的膨胀,可观测宇……
云南通海五山村成为全省首个盆景村日前,云南省盆景赏石协会授予玉溪市通海县里山乡五山村云南盆景村荣誉称号,也是目前全省唯一一个省级盆景村。很早以前,五山村因地理优势,时常有村民上山寻找一些有寓意的植物回家……图怎么给绿萝换盆方法是个大学问现在社会,绿萝作为绿化空间、净化空气的较理想盆栽植物,我们对它已不在陌生。大部分人都知道绿萝该怎么养,但对于换盆却非常陌生。对此,在这里教大家如何给绿萝换盆。绿萝这种植物……易建联可能退役,联合腾讯打造易体育,从底层建立篮球文化众所周知,今年广东宏远无缘打进总决赛。而易建联的表现也不太好。不管什么原因,广东宏远很大机会会进行比较大的人员调动。广东宏远作为一家民营企业管理的球队,母公司在现在这个情……图怎么识别金桂花树花色株型是重点桂花是木犀科常绿灌木或小乔木,质坚皮薄,叶长椭圆形面端尖,经冬不凋。其园艺品种繁多,分为金桂、银桂、丹桂、月桂等。那么如何去辨别金桂花树呢?每年一到了八月份快要结束的时候……喝茶对银屑病患者的好处竟然有这么多一说起银屑病,大家一定都对其的危害性有了些许的了解。银屑病是一种慢性的皮肤疾病,大家在患病后一定要及时治疗,如果不能及时治疗的话那么很容易造成症状的加重,甚至还可严重影响到患者……图月季叶子卷曲的原因这三点一定要注意在生活之中,很多花友都会发现月季的叶片出现卷曲的情况。有的时候新长出的嫩叶也会卷曲,而有时候老叶片的叶缘也会卷曲,严重的话叶片还会发黄,它的原因是什么呢?很多喜爱自己在家……图值得分享的德牧训练教程三个方法帮你教出好狗德国牧羊犬长相威猛、行动敏捷,很多时候的身份是工作犬。现如今,也有很多人饲养德国牧羊犬作为宠物犬、观赏犬等。训练德牧需要对其进行适当的训练,这样狗狗才能更听话。德牧是一种……图叶子很硬像冬青的植物这样的树种你见过吗叶子很硬像冬青一样的植物有多,它们都是硬叶,这是为了防止水分流失而自我保护的一种方法,这种树木往往四季都是青的,例如四季青,今天小编就给大家介一下它们吧。一、叶子很硬的植……图边境牧羊犬好吗生手饲养要注意三方面边境牧羊犬智商排名位居首位,相当于6岁儿童的智商。边境牧羊犬有非常匀称体型,外观健壮而且肌肉发达。它们外形优雅,给人的印象比较好,是一种深受人们欢迎的狗狗。边牧是特别聪明……图令人着迷的云南兰花姜氏荷这样的花你见过吗云南兰花姜氏荷,大家听到这个名字的时候一定也会感到有疑问,这个花到底是属于兰花种的品种还是属于荷花的品种呢?下面就让小编带大家去探寻姜氏荷的秘密。一、姜氏荷的生长习性及外……图罗威纳犬爱攻击人吗全面分析让你正确认识它们罗威纳犬是一种烈性犬,因为体型巨大而且性格刚烈,所以很容易发生伤人事件。这种狗的来源让大家非常疑惑,说法也不太统一。那么,它们的性格特点是什么样的呢?一、攻击性。现……图紫玉兰花的寓意是什么如何管理才得当紫玉兰是中国特有的植物,它开出来的花朵非常艳丽,有着淡淡的芳香和婀娜的树形,不论是丛植还是孤植都是很美观的。种植紫玉兰花有着怎样的寓意呢?一起来看看吧!紫玉兰花是很珍贵的……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网