認識RPA元素分析器:介面元素是怎麼被RPA捕獲的?
導讀 在未來,那些你不想做的枯燥工作,也許真的可以不做。重複化、標準化的工作都可以讓 RPA 機器人幫你完成。RPA 已經應用在許多行業,發揮的作用也越來也重要。今天和大家分享的是認識 RPA 元素分析器,講一講 RPA 到底是怎麼樣去捕獲一個元素的。
今天的介紹分為四個部分:
1. RPA 概念
2. RPA 核心模組
3. RPA 元素分析器
4. 交流&答疑
分享嘉賓|何雙鑽 達觀資料 開發技術副總監
編輯整理|孫宇 上海杉泰
出品社群|DataFun
RPA 概念
在《智慧 RPA 實戰》這本書裡是這樣提到的:透過特定的可模擬人類在計算單機介面上進行操作的技術,按照規則自動執行相應的流程任務,代替或輔助人類完成相關的計算機操作。
一句話總結就是:用軟體機器人自動化完成之前由人完成任務。概念中提到的“代替或輔助人類完成相關的計算機操作”就是對應“有人值守”或“無人值守”兩種機器人。
2. IPA 定義
IPA 是 Intelligent Process Automation 的縮寫。它是 RPA 和 AI 融合,是使用 AI 技術來賦能 RPA,使 RPA 能夠完成更多端到端的複雜流程。我們通常把 RPA 比作抓手,讓 AI 比作大腦,相當於 AI 負責思考,RPA 負責行動。RPA 相當於一個數字化的平臺,可以呼叫計算機的所有的軟硬體能力,然後 AI 可以作為智慧元件被 RPA 呼叫,也可以作為 RPA 一部分進行賦能。比如智慧化機器人的一個排程邏輯,當一個任務需要被執行的時候,選擇什麼樣的一個機器人就可以交給 AI 來做推理。
3. RPA 中應用廣泛的 AI 技術
(1)CV 計算機視覺:研究如何從數字影像中提取有用資訊的領域。
RPA 常用的有 2 種:
Template matching 模板匹配
是從一張大圖中去定位小圖的一個演算法,比如要在桌面上定位一個圖示,這個小圖示就是我們的模板。整個桌面的一張截圖可以作為查詢區域,然後從這個查詢區域去定位到這個圖示,再呼叫滑鼠雙擊去執行它。
OCR 光學字元識別
輸入影像,然後透過 OCR 模型分析和處理,最終輸出影像上的結構化資訊,包括字元的座標、字元的具體值。
(2)NLP 自然語言處理:研究如何從文字中提取有用資訊。
RPA 常用的有 2 種:
IDP 智慧文件處理
合同的自動解析,自動化處理大量的合同文件,快速應對審閱、查詢、校對的工作;
提取對應企業的招投標檔案;
內部文件或者長篇幅檔案的解析;
HR 的人崗精準匹配,對簡歷進行關鍵資訊的提取,來構建人才的畫像,然後匹配精準的崗位。
文字稽核
黃反稽核識別文字中的一些情色低俗資訊;
涉政識別,識別文字中的涉政敏感資訊;
廣告過濾;
垃圾檢測。
4. RPA 應用價值
提升企業的效率
從工作時間上看,人類一週可能工作 5 天,每天工作 8 小時,每週工作 40 個小時,機器的話可以 7X24 小時,每週工作 168 小時,每週工作時長是人類的 4.2 倍。
從速度上看,業務系統響應有多快,RPA 就能執行有多快,並且它不會因為工作時間的延長而出現疲勞或者說準確率降低等問題。
降低人工的風險
人類非常擅長抽象和推理,機器非常擅長重複。人類在疲倦、外界干擾或主觀情感波動時,特別容易產生誤操作或者誤判。RPA 可以利用機器擅長重複這個特性降低人工的風險,讓機器不斷地重複特定的操作。
非侵入式
RPA 不需要改造原有的系統,不需要開發介面或者SDK 來實現對接。比如說兩個孤立的一個系統,需要完成資料的轉移。RPA 可以模擬人工,從 A 系統把資料搬運到 B 系統。
5. RPA 發展階段
RPA 1.0
輔助性 RPA,也叫有人值守 RPA。作為虛擬助手出現的 RPA,覆蓋了桌面操作的所有主要自動化功能,然後部署面向員工的 PC 機上,用來提升效率。
RPA 2.0
非輔助性 RPA,也叫做無人值守的 RPA,在這個階段的主要的目標是完成端到端的自動化。
RPA 3.0
自主性的 RPA,主要的目標是實現端到端的自動化和成規模的虛擬勞動力,實現多臺機器人的流程編排。
RPA 4.0
認知性的 RPA,也是 RPA 未來的發展方向。這一階段主要是運用人工智慧、機器學習或自然語言處理等技術實現一些非結構化資料的處理預測或者分析自動處理接受一個任務,然後處理實現一個全過程的端到端自動化。
02
RPA 核心模組
(1)物件導向:開發者,流程設計人員。
(2)作用:視覺化的程式設計介面,也就是 lowcode 低程式碼程式設計,它提供拖拉拽方式進行業務邏輯設計,然後可以進行復雜流程的設計
(3)主要模組:
流程設計,流程、子流程、第三方庫、自定義元件,這些相當於程式設計領域提供的封裝或者複用,從小流程封裝為大流程來避免重複造輪子。
流程除錯,支援隨機斷點、單步除錯、單步進入、單步跳出,檢視當前上下文的變數資訊。
版本管理,可以為當前的流程釋出指定特定的版本,也支援回滾到歷史的任意版本,允許多個流程設計者同時修改同一個流程。
元素分析器,是流程設計過程當中的必備工具。很多的元件都是以一個元素作為輸入引數,執行相應的動作。透過元素分析器,可以很方便地在螢幕上去選擇一個目標元素,也就是常說的捕獲。
元素錄製器,是透過錄制一段使用者的操作,自動地生成一堆元件。在流程在環境干擾比較小的時候,錄製是非常有用的。
資料抓取,抓取螢幕上的結構化資訊。
畫中畫,主要的目的是提供環境的隔離,提供了一層虛擬的會話,將機器人的執行和當前的宿主機隔離開,讓機器人在執行的同時,業務人員也能正常地使用電腦,互不干擾。
程式碼支援,主要是專家模式,可以直接呼叫元件的API來提供任意複雜度的擴充套件,允許有程式設計能力的設計同學進行RPA的能力擴充套件。
2. 控制中心
(1)物件導向:開發者、業務人員。
(2)作用:控制中心是 RPA 機器人的大腦,可以在上面建立任務,然後執行任務,也可以配置任務執行的策略。
(3)主要模組:
流程管理,主要是管理已釋出的視覺化流程。流程是從開發平臺編寫完成之後,然後釋出到這裡,可以在這裡進行管理。比如匯入、匯出、檢視指定的版本。
機器人管理,主要是管理機器人,包含稽核機器人上線、啟用機器人、禁用機器人、是否共享機器人,透過 VNC 或者其他遠端桌面技術來檢視目標繼承的桌面。
任務管理,主要是機器人執行的模板。透過選擇特定的流程配置特定的引數建立任務,任務建立好以後,控制中心可以根據任務裡面的引數的排程資訊進行排程。
作業管理,當任務開始執行時,就會產生作業。它是一個動態資料,包含機器人執行時的各種各樣的資訊。
資料資產,執行日誌、執行狀態等都是資料資產。可以理解為安全資料庫。在許可權滿足的情況下,可以增刪查改指定的資料。同時安全資料庫也提供安全欄位的概念,比如加密型欄位,不能在開發平臺或者機器人上直接列印出它的值,應該進行脫敏處理。
許可權管理,主要是支援角色管理的許可權模型,可以對不同的賬號賦予不同的角色,不同的角色賦予不同的功能。
租戶管理,主要是對多租戶的支援。多租戶是單個軟體的例項,是一種可以為不同的使用者組提供服務的軟體架構。比如 SaaS 就是一種多租戶架構。一個公司可能有多個子公司,每個子公司可以有一個架構;或者說一個公司多個部門,每個部門可以有一個架構。不同租戶之間的資料是完全隔離的。
運維管理,主要是管理 RPA 伺服器本身,可以對伺服器的資源進行監控等。
報表分析,主要是控制中心提供關於機器人的所有資料,我們可以透過這些資料來進行各種各樣的統計分析,比如分析某個流程的執行成功率、某個機器人的執行效率等。
日誌審計,主要是安全合規,每一次操作都有留痕,包含 RPA 機器人的相關日誌、使用者的相關操作日誌。
3. RPA 機器人
RPA機器人目的就是為了執行控制中心下發過來的任務,在RPA機器人上也可以手動地執行任務。
4. AI 元件
(1)AI 元件應用比較廣泛的三個方向
圖片抽取資訊,比如:身份證抽取、發票抽取、營業執照抽取、銀行卡抽取或者火車票資訊抽取。
文件抽取資訊,比如:採購類的合同、銀行業的零售貸款合同、民事判決書、債券募集說明書等。
文件智慧分析,比如:文字分類、文字稽核、文字摘要、文字標籤,提取文字觀點、文字評論情感分析。
03
RPA 元素分析器
元素分析器是用於分析當前使用者介面的元素的層級和屬性,以便後續能夠再次去定位到這個元素或者操作這個元素。
1. 元素分析器的術語
使用者介面樹
它是使用者介面的抽象資料結構呈現。使用者介面樹,包含靜態的資料和動態的資料,樹上的每一個節點都是使用者介面上的一個元素。針對每一個元素,我們可以檢視它的屬性,可以對元素進行操作測試,比如點選元素、對編輯框設定值。
元素選擇器
元素選擇器的作用是在使用者介面樹上定位某個元素或者某組元素。元素選擇器可以精確或模糊地定位某個元素。比如找標題為ABC的窗體,找按鈕名稱為ABC的按鈕。
2. 為什麼需要元素分析器
元素分析器可以提供統一的簡單的方式來自動化,避免去理解種類繁多的UI技術。這樣使得流程設計者只需要瞭解這裡有個按鈕,然後點選它就可以了,而不是這個按鈕出現在不同的介面上有不同的操作方式。
3. 元素分析器的發展歷程
(1)絕對座標
應用一,監控螢幕上的特定座標點的顏色變化,然後進行特定操作。比如監測這個點,它正常的情況下是紅色的。當它這個點變為灰色的情況下,就可以按一下 end 鍵,完成喝藥操作。
應用二,影像定位,從大圖裡面去找一張小圖。比如這裡大圖就是這張遊戲的背景,小圖就是地鼠。可以寫一個流程,迴圈監控螢幕上是否出現了地鼠,出現了以後,就呼叫滑鼠的點選,去點選地鼠中心點的座標,來實現一個自動點地鼠的流程
(2)選擇器
選擇器主要是基於文件物件模型的,它是把整個 UI 介面抽象成樹型資料結構,使用選擇器語法進行介面的定位,是最常用的。
(3)目標檢測
目標檢測是 AI 的目標檢測演算法來進行相關的定位。比如給予一張圖片作為輸入,它可以把介面上的東西進行分類。但是實際上目標檢測用得比較少。
4. 主要任務
(1)任務一:元素的定位
基於螢幕座標點,主要是元素分析器的捕獲功能,可以讓流程設計者便捷地選擇一個目標元素。
基於選擇器,透過選擇器語法,選擇滿足條件的某個或某組元素。
基於 CV,透過模板匹配或者相關的 AI 演算法目標檢測來定位目標元素。在業務程式不支援捕獲的時候,CV 非常有用。
(2)任務二:元素的操作
基於方法 AT(AssistiveTechnology),輔助訪問技術。比如呼叫一個按鈕的點選功能,或呼叫一個文字框的設定文字功能。
基於訊息,在 Windows 上窗體之間是可以透過訊息來進行通訊的。可以利用 windowmessage 來操控元素。
基於鍵鼠模擬,如果目標元素不支援任何的 AT、訊息,可以簡單粗暴地利用鍵鼠模擬來操作。這是最模擬人工的一種方式。所有的場景都可以用。
5. 自動化技術分類
(1)不帶 GUI 的自動化
特點就是編寫簡單,除錯容易,執行穩定,不容易受到環境變化的影響。易於維護,執行效率較高。
(2)GUI 的自動化
特點是覆蓋範圍廣,支援 AT,非侵入式,不需要業務應用的原始碼或者說 SDK 的接入,就可以操作。
GUI 自動化的不穩定的因素。比如隨機的彈窗空間屬性的變化,系統有 AB 測試使使用者的使用者的介面顯示不同,頁面的延時造成空間識別失敗,隨機彈窗,空間屬性變化導致流程失敗。
不穩定的因素應對機制
利用模糊匹配的技術來讓選擇器更加的有彈性。比如一個創意的標題它可能經常變化,但是發現它的字首或者字尾或者包含的某個文字不太容易變的時候,可以提升控制元件的識別率。隨機頁面延時,主要是利用重試機制來解決。
6. RPA 捕獲元素原理
(1)win32 API
微軟的 Windows 作業系統底層 API,透過 win32 API 來對目標窗體進行識別、操控和獲取屬性。
優點:非常的高深,很強大,對 Windows 的標準控制元件支援得相當不錯。
缺點:相當的複雜,然後開發的效率低下,不支援自定義的控制元件。
(2)MSAA(Microsoft Active Accessibility)
提供 Windows 輔助控制能力的一種技術。但 MSA 是提供介面讓開發人員可以方便地給殘疾人開發可以使用的軟體。
優點:使用者只需要跟 MC 打交道,透過它的介面可以獲取到控制元件的豐富的資訊。支援自定義控制元件
(3)UIAutomation
在所有支援 WPF 的作業系統上都支援。提供了大多數UI元素可程式設計訪問的能力,抽象了大部分的 UI 框架的公用屬性。
(4)JAB(Java Access Bridge)
主要為 Java 資訊提供後設資料。
(5)SAP Scripting Engine
主要是提供了 SAP 的全面的指令碼化支援。透過 SAP 提供的指令碼,可以訪問 SAP 程式的幾乎所有功能。
(6)Citrix Virtual Channel
透過這種虛擬通道技術,可以和虛擬桌面建立連線。可以向虛擬桌面傳送虛擬指令,然後來獲取業務的所有資訊。
(7)RDP Virtual Channel
原理和 Citrix 的類似。但是它的效率沒有Citrix 的好。
(8)自動化瀏覽器
selenium,開源的瀏覽器控制框架,支援大多數的瀏覽器。
Chrome 有兩種技術,一種是谷歌外掛,允許開發者自定義使用者介面體驗;一種是 CDP 協議,可以對瀏覽器進行檢查、除錯或者監控。
(9)自動化 office
微軟提供了一套 COM 介面,透過 COM 技術,透過支援自動化的 IDispatch 介面可以呼叫任意的方法。比如:操縱 word 設定字型、輸入文字;Excel合併單元格、設定單元格格式等等。
剛提到這麼多技術,如果逐一對接,對接成本非常非常的高。所以需要元素分析器,完成了所有這些技術的對接,給業務人員和開發人員一個統一的介面,只需要知道介面上滑鼠所指的這個元素要進行操作就可以了,然後程式會自動正確的匹配上那個技術,然後去操作它,這樣的話降低了使用成本。
04
Q1:RPA 和流程挖掘的關係是什麼?
A1:流程挖掘是從現在已經存在的日誌裡面,自動地去生成一個 RPA 流程,我們把它叫流程挖掘。它其實是人工智慧在 RPA 上的一個應用,比如業務系統操作日誌,透過這個日誌可以推理出流程大概應該的樣子,然後分析出流程圖,透過流程圖可以解析出具體的流程,然後甚至可以讓這個流程跑起來。而 RPA 和流程挖掘,它們沒有絕對的一個關係。流程挖掘更多的是 AI 賦能來達到從需求到流程輸出的端到端,是純智慧的判斷。
Q2:元素選擇器在 Python 呼叫 Windows32com 進行 office 操作自動化中的作用。
A2:win32 com 是 win32 提供的 Python 操作的 com 元件的一種庫。透過這個庫可以去操作 office 的介面。Python 是用 win32 com 技術來操作的。透過這種技術的話,我們可以單獨的對 office 系列的軟體進行一個操作。
Q3:達觀用的都是開源介面的整合嗎?
A3:達觀技術是自研的技術,開源技術有很多侷限性,導致了我們 RPA 在操作業務系統當中經常遇到反自動化。然後達觀自研的 RPA 捕獲引擎融合了開源類似的底層技術,有充分相容性。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024420/viewspace-2934371/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RPA介面元素智慧自適應定位與操控技術
- 國產RPA再獲全球認可,雲擴成為首家同時被Forrester和Gartner推薦的主流RPA廠商REST
- 雲擴RPA研習社 | RPA開發基礎之什麼是RPA機器人機器人
- jQuery捕獲-獲取DOM元素內容和屬性jQuery
- 什麼是塊元素?什麼是行內元素?
- 全面認識UML類圖元素
- 實在智慧RPA帶你瞭解什麼是RPA機器人機器人
- 實在RPA給你展示什麼是真正的OCR識別技術
- 定位是什麼,元素怎麼顯示隱藏
- HTML元素是什麼?HTML
- js獲取元素的方法(獲取html元素的方法)JSHTML
- 怎麼能接聽來電?獲取不到不到元素
- 求教:Selenium 中怎麼獲取偽類元素,
- RPA機器人是什麼意思?一文秒懂RPA機器人的前世今生!機器人
- 初識RPA以及簡單的RPA專案——微信群發機器人機器人
- JavaScript獲取指定元素的同輩元素JavaScript
- 獲取ul元素下的所有li元素
- 文字描述、介面或標識等遊戲元素如何能被法律保護遊戲
- Web前端技術分享:什麼是塊元素?什麼是行內元素?Web前端
- 如何評估RPA需求,RPA需求的模型模型
- 從視聽語言角度,硬核分析恐怖遊戲元素:玩家是怎麼被嚇到的?遊戲
- 獲取div元素下li元素的數目
- jQuery如何獲取當前元素的兄弟元素jQuery
- 從RPA獲得資本市場認可,看AI大資料投資AI大資料
- jQuery獲取元素前面所有兄弟元素jQuery
- 【RPA之家方法論】(10)什麼樣的場景實施RPA ROI高
- javascript事件捕獲是什麼意思JavaScript事件
- 判斷一個元素是否是另一個元素的子元素或者父元素
- js通過元素的class屬性獲取元素JS
- javascript獲取當前元素的上一級元素JavaScript
- jQuery獲取當前元素的下一個元素jQuery
- JavaScript獲取父元素下子元素節點JavaScript
- 什麼是可替換元素?
- CSS 元素溢位是什麼?CSS
- css中BFC元素是什麼?CSS
- 企業價值角度:RPA 機器人是什麼?機器人
- 想成為RPA人才?RPA人才成長指南
- jQuery獲取指定元素的父元素程式碼例項jQuery