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

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年上海"张江工匠"获得者。

这片沙漠有魔法!螃蟹都来新疆安家啦出品网易新闻导语过去三四十年间,中国科学家发现原本寒冷干旱的西北地区正逐渐暖湿化。与此相对应的是近年降水有了明显增加。其中新疆地区正不断因地制宜地推进螃蟹养殖产业,在沙漠边缘和天山宝藏绘本6大思维力训练,轻松玩出科学脑书名玩出来的科学脑(全6册)作者亦学亦玩出版社中信出版社昨天推荐的地板书,就是纯观察的一类绘本,今天推荐的这套好玩的思维力训练游戏书除了观察找找找,它还需要用到想象力推理能力归纳能看!莘县人,努力改变命运,独骑2000里阿里总部取经,助农做电商山东省作家协会会员张丁材侯庆敏,莘县王奉镇人,现任山东道坦电子商务有限公司总经理。侯庆敏2009年,侯庆敏毕业于天津财经大学,大学毕业后在青岛即墨做淘宝女装C店,踏入电商行业。20学报告读金句丨构建人类命运共同体是世界各国人民前途所在大河网讯为深入学习贯彻党的二十大精神,大河网联合中共河南省委宣传部党的生活杂志共同推出学报告读金句系列策划,促使广大党员干部在诵读金句的过程中汲取奋进力量,切实把学习成果转化为前进中国第二大油气田易主!2023年中国十大油气田排名出炉!新年伊始,万象更新,中国石油中国石化中国海油延长石油的各大油气田相继公布2022全年的油气产量当量。特别值得注意的是,由于此次排名仅计入国内油气产量,中国海油渤海油田在去年原油产量老李带你走新疆(原创连载5)天山伊犁概述天山,位于欧亚大陆腹地,横跨中国哈萨克斯坦吉尔吉斯斯坦和乌兹别克斯坦四国,全长约2500千米,主峰托木尔峰海拔7443米,是世界上距离海洋最远的山系和全球干旱地区最大的山系。天奇安信椒图李栋勒索攻击泛滥服务器安全实战化要求提升创新技术的应用推动着企业数字化进程的加速,与之相伴的是前所未有的安全威胁和更多未知的安全风险,勒索病毒0day漏洞僵尸木马恶意攻击扑面而来,网络攻击手段越来越多,无处不存在漏洞,无交广会客厅从检修工到变配电高级技师他见证了贵州多条高铁线路开通运营不是在出差,就是在出差的路上。贵阳供电段所属的贵阳变配电车间自动化保护工区党员检修工邓强说,工作几十年,出差已经成了我的一种生活方式。小时候,邓强随父母乘坐火车进京,对身穿铁路制服来开盲盒!回顾贵州2022关键词2022年是贵州极其不平凡的一年。这一年,我们克服重重困难,战胜种种挑战,以实干笃定前行,也收获了累累硕果。回眸这一年,我们用12个关键词,镌刻这前所未有的12个月。来开盲盒!回顾2023年,元旦祝福语新年将至,在这辞旧迎新的日子里,我们给大家编辑了一些新年祝福语,期盼大家带上新希望,共创新辉煌。送给父母的祝福语01。身在远方的我一切都好,在我内心的思念里,改变的是我的容颜,不变环华东线东极之旅东北三省骑行攻略去过海南岛到过越南胡志明市,可以算去过最南端,到过中国最北端黑龙江漠河北极村去过中国西部城市新疆喀什,还有一个抚远县乌苏里镇东极广场,中国最北端还没去过,2023若有机会骑行去看看
乡村纪实难忘当年交公粮文陈景建图来自网络最近,在朋友圈看到一些麦收的场景,看着农民一车车往家里运送粮食的丰收场景,我油然想起当年交公粮的事来。在上个世纪八九十年代,由于钾肥和尿素的使用,那时小麦的亩产大又一位!台湾歌手萧敬腾宣布我已经在成都常居了中国台湾网6月8日讯成都生活这么好,物价也没有其他城市那么高,发展空间也很大,我已经在成都常居了。对于成都,萧敬腾是发自内心的热爱。台湾歌手萧敬腾8日接受红星新闻访问时透露,自己已62岁大爷直言我跳了一年交谊舞,终于明白那些女人图什么相遇就是缘分,关注我,为你分享更精彩的情感故事。前言62岁大爷直言我跳了一年交谊舞,终于明白那些女人图什么。这位大爷到底经历了什么才得出这样的感悟呢?让我们一起来听听大爷的真心话。家里的路由器,究竟应该多久关一次?多亏宽带师傅提醒这些年每到逢年过节时总是会出现树欲静而风不止,子欲养而亲不待的遗憾言论,许多人表示因为工作太忙,哪怕到了节日也无暇回家陪伴父母。在这种情况下,人们给家中老人的房子中都装上了网络,想张晓勇17岁以理科状元上清华,回乡做保安,从不参加同学聚会你堂堂一清华大学的高材生,竟要来我们这里当保安?2008年,湖南长沙马王堆陶瓷市场的保安招聘处,来了一位戴着金丝眼镜的求职者。招聘负责人看了他的简历后,不禁失声叫了出来。原来这位求2022高考数学难上热搜,多地考生崩溃大哭,难道葛大爷又参与了?又是一年高考季,每位考生都希望在高考中,能够成为幸运儿,考的全会,蒙的全队,然而,现实比较残酷,只有越努力的学生才会越幸运,光凭运气很难在高考中取得好成绩。高考期间,学生需要一科一武装巡逻防诈宣传淮安新城巡特警用新行动守护群众钱袋子为深入贯彻落实中办国办印发的关于加强打击治理电信网络诈骗违法犯罪工作的意见文件精神,全面响应淮安市公安局新城分局反诈工作的开展,新城分局巡特警巡逻防控中心充分利用巡逻防控工作灵活机杭州萧山宝龙广场,干出荒唐事萧山宝龙广场,3号门看着天天都是开着的凑近一看即是开着又是关着让人大跌眼镜,既然开着为什么要拦起来呢自相矛盾,要是因为疫情就干脆关起来别开了,这样半开不开算什么?难道是因为商场物业跳广场舞的注意了!6月起有新规定据央视新闻报道,中华人民共和国噪声污染防治法将于6月5日起施行,禁止在商业经营活动中使用高音广播喇叭或者采用其他持续反复发出高噪声的方法进行广告宣传。在街道广场公园等公共场所组织或欢迎光临正午玩砸了,以为励志剧却是爱情剧,广场舞大妈成主演影视畅聊季欢迎光临开始以为是北漂青年励志剧,后面发现是爱情剧,最后才明白主角是广场舞大妈。剧名应改为欢迎光临广场舞大妈直播现场。就妥妥的了。欢迎光临轻喜剧,一开始以为爱情剧,现在看黄克诚反对死守盐城,陈毅呵斥大战之前,别动摇军心作者周建伟黄克诚原是八路军第5纵队(后改编为新四军第三师)司令员兼政委,于1940年8月率队推进到盐城阜宁一带,策应新四军的行动。皖南事变后,接上级指令划归新四军,黄克诚担任新组建