什么是RPA?RPA(Robotic Process Automation,機(jī)器人流程自動(dòng)化)是通過特定的、可模擬人類在計(jì)算機(jī)界面上進(jìn)行操作的技術(shù),它可以按規(guī)則自動(dòng)執(zhí)行相應(yīng)的流程任務(wù),代替或輔助人類完成相關(guān)的計(jì)算機(jī)操作,從而節(jié)約人力成本,提高生產(chǎn)效率。
從RPA的定義就可以看出,對(duì)計(jì)算機(jī)界面的操控是RPA的核心之一。要實(shí)現(xiàn)對(duì)計(jì)算機(jī)界面的操控,就必須用到RPA界面元素定位和操控技術(shù)。
?元素定位與操控技術(shù)?
界面元素是指用于構(gòu)建系統(tǒng)或應(yīng)用程序的所有圖形用戶界面部分,例如窗口、輸入框、按鈕等。通過顯示器、鍵盤、鼠標(biāo)等計(jì)算機(jī)外部設(shè)備,人能夠?qū)崿F(xiàn)在指定輸入框輸入文本、點(diǎn)擊指定按鈕等操作,和操作系統(tǒng)以及業(yè)務(wù)系統(tǒng)進(jìn)行交互。同樣的,RPA要代替人完成這些操作,就需要能夠定位和操控這些界面元素。
界面元素定位與操控方法有很多,主要區(qū)別在于是否使用GUI(Graphical User Interface, 圖形用戶接口)自動(dòng)化技術(shù)。非GUI自動(dòng)化技術(shù)有:絕對(duì)坐標(biāo)定位、圖像匹配定位、基于消息操作、模擬鍵鼠操作等。GUI自動(dòng)化技術(shù)有:Win32、MSAA、UIA、JAB、SAP、Citrix Virtual Channel、RDP Virtual Channel、Selenium、Chrome Extension等。通常來說,GUI自動(dòng)化技術(shù)能獲取到的界面元素的信息更多,支持的操作也更多,但同時(shí)局限性也更大,一種GUI自動(dòng)化技術(shù)往往只支持幾個(gè)界面元素框架,實(shí)際使用起來也會(huì)更困難。
下面列舉幾種常用的自動(dòng)化技術(shù)并給出優(yōu)缺點(diǎn)分析。
01?絕對(duì)坐標(biāo)定位
絕對(duì)坐標(biāo),是指屏幕中固定的坐標(biāo)位置,當(dāng)界面元素總是處于屏幕中固定坐標(biāo)位置時(shí),就可以使用絕對(duì)坐標(biāo)來進(jìn)行定位。這個(gè)方法非常簡單方便,在特定場景下非常好用。但是一般要求屏幕分辨率和應(yīng)用窗口大小固定,而且無法保證定位到的界面元素是否正確。
02?圖像匹配定位
圖像匹配,在待匹配圖像中尋找與目標(biāo)圖像相似性高的單個(gè)或多個(gè)目標(biāo),并獲取目標(biāo)的坐標(biāo)位置。圖像匹配可以和絕對(duì)坐標(biāo)定位相結(jié)合,先使用絕對(duì)坐標(biāo)定位,再用圖像匹配做校驗(yàn);也可以先劃定屏幕中的某個(gè)區(qū)域,在此區(qū)域內(nèi)進(jìn)行圖像匹配,以達(dá)到提高準(zhǔn)確率、加速匹配過程的目的。
圖像匹配的方法非常多,模板匹配使用空間二維滑動(dòng)模板進(jìn)行匹配,將目標(biāo)圖像在待匹配圖像中滑動(dòng);特征匹配提取圖像的特征,再生成特征描述子,最后根據(jù)描述子的相似程度對(duì)兩幅圖像的特征之間進(jìn)行匹配;深度學(xué)習(xí)也可用于圖像匹配之中,例如,使用OCR技術(shù)可以定位到包含指定文本的圖像。
03?基于消息操作
這里的消息指的是操作系統(tǒng)的消息。Windows 是一個(gè)消息驅(qū)動(dòng)的系統(tǒng),Windows的消息提供了應(yīng)用程序之間、應(yīng)用程序與Windows 系統(tǒng)之間進(jìn)行通信的手段。通過對(duì)應(yīng)用程序窗口發(fā)送特定的消息,可以實(shí)現(xiàn)對(duì)指定界面元素的點(diǎn)擊輸入等操作。
圖1?Windows消息機(jī)制
04?模擬鍵鼠操作
模擬鍵鼠可分為消息模擬、API模擬、驅(qū)動(dòng)模擬三種。消息模擬基于windows的消息機(jī)制,向目標(biāo)窗口發(fā)送鍵鼠消息。API模擬就是用Windows提供的API實(shí)現(xiàn)模擬輸入。驅(qū)動(dòng)模擬就是通過驅(qū)動(dòng)程序,在系統(tǒng)內(nèi)核里面操作I/O端口,給連接鍵盤的集成電路發(fā)送指令,讓它產(chǎn)生一個(gè)按下按鍵的信息,這樣你的模擬輸入對(duì)于所有程序來說就是從一個(gè)真實(shí)的設(shè)備發(fā)出的。
05?Win32 API
Win32 API是微軟第一代應(yīng)用程序可訪問API。Win32 API出現(xiàn)在.NET之前,是底層的Windows API。它支持MFC、VB6、VCL、簡單的WinForms等窗體。
Win32自動(dòng)化技術(shù)基于HWND(窗口句柄),一般需要通過 FindWindow、 EnumWindows 來查找目標(biāo)窗口的句柄,然后再調(diào)用其它 API,例如 GetWindowText、GetWindowRect等來獲取窗口屬性,以此來定位目標(biāo)元素。定位到目標(biāo)元素之后,可以通過Win32 API實(shí)現(xiàn)對(duì)目標(biāo)元素的操控。例如使用SetWindowText來設(shè)置顯示的文字,使用SetActiveWindow來激活窗口等。
優(yōu)點(diǎn):
- 對(duì)標(biāo)準(zhǔn)Windows控件支持良好
缺點(diǎn):
- 過于底層,調(diào)用復(fù)雜。例如:Win32 API查詢窗體需要逐層獲取窗體句柄進(jìn)行遍歷查找
技術(shù)落后,用途不廣。例如:Win32 API對(duì)新UI框架以及自定義控件的支持很差。
06?MSAA
MSAA(Microsoft Active Accessibility)是微軟第二代應(yīng)用程序可訪問API。MSAA旨在幫助輔助技術(shù)產(chǎn)品與應(yīng)用程序(或操作系統(tǒng))的標(biāo)準(zhǔn)和自定義用戶界面元素進(jìn)行交互。它支持WFC、VB6、VCL、WinForms、WPF等窗體。
MSAA 主要基于 COM 技術(shù)。提供信息的應(yīng)用程序被稱為 Server;獲取信息的應(yīng)用程序被稱為Client。首先Client調(diào)用AccessibleObjectFromWindow傳入Server窗口的HWND。
然后AccessibleObjectFromWindow函數(shù)向Server發(fā)送WM_GETOBJECT消息。Server創(chuàng)建并實(shí)現(xiàn)了IAccessible,之后通過LresultFromObject 把IAccessible 返回給Client。最后Client調(diào)用IAccessible定位和操作Server中的界面元素。
優(yōu)點(diǎn):
- 相較Win32 API更簡單易用。使用者只需要和 IAccessible 進(jìn)行交互,也不需要直接使用windows消息來操作目標(biāo)元素。
- 相較Win32 API支持了部分自定義控件。前提是開發(fā)人員在實(shí)現(xiàn)自定義控件的同時(shí)實(shí)現(xiàn)了 IAccessible 的接口。
缺點(diǎn):
- 功能不全。MSAA技術(shù)的初衷是為了方便殘疾人使用Windows 程序,對(duì)自動(dòng)化來說還是不夠,僅支持對(duì)界面元素的一些基本操作。
07?UIA
UIA(Microsoft Active Accessibility)是用于替代MSAA的應(yīng)用程序可訪問技術(shù)。和MSAA不同,UIA技術(shù)的初衷是提供UI的可訪問性。它支持MFC、WinForms、WPF、Store apps、Qt等窗體。
UIA定義了全新的、針對(duì)UI自動(dòng)化的接口和模式。分別是支持對(duì)界面元素進(jìn)行遍歷和條件化查詢的TreeWalker和FindAll。定義了讀寫UI元素屬性的UIA Property, 包括Name、 ID、Type、ClassName、Location、 Visibility等等。定義了UI元素行為的UIA Pattern, 比如Select、Expand、Resize、 Check、Value等等。還引入了UIA Event接口,可以讓測試程序在某些事件發(fā)生后得到通知,比如新窗口打開事件等。
圖2?UIA架構(gòu)圖
優(yōu)點(diǎn):
- 支持的UI框架更豐富。例如WPF和Silverlight中的子窗口和控件并不是傳統(tǒng)的HWND,所以Win32 API和MSAA無能為力,而UIA可以直接支持這兩種程序。
- 兼容傳統(tǒng)的Win32和MSAA模式。前面提到過,UIA技術(shù)的內(nèi)部實(shí)現(xiàn)可以多樣化。針對(duì)傳統(tǒng)程序,UIA可以在內(nèi)部實(shí)現(xiàn)中借用MSAA的接口和直接調(diào)用Win32 API。
- 高度抽象,易于使用。例如執(zhí)行點(diǎn)擊按鈕操作, UIA 統(tǒng)一歸類于Invoke, 無論是Win32、 WPF還是Silverlight按鈕,都可以通過Invoke實(shí)現(xiàn)點(diǎn)擊,不用關(guān)心具體實(shí)現(xiàn)方式是模擬鍵鼠還是調(diào)用Windows API。
缺點(diǎn):
- 編碼過程復(fù)雜。對(duì)于一個(gè)UI窗口,里面可能有幾十個(gè)子控件或者子窗口。在編寫測試代碼的時(shí)候, 如果對(duì)這些子元素的獲取,操作不能簡化, 勢必導(dǎo)致代碼冗繁,難以維護(hù)。
08?JAB
JAB(Java Access Bridge)是一項(xiàng)在Microsoft Windows動(dòng)態(tài)鏈接庫(DLL)中公開Java Accessibility API的技術(shù),使實(shí)現(xiàn)Java Accessibility API的 Java應(yīng)用程序?qū)indows系統(tǒng)上的輔助技術(shù)可見。
要使用JAB技術(shù),需要在啟動(dòng)Java程序前配置好所需的JAB環(huán)境。Client需要事先加載WindowsAccessBridge.dll獲取Server提供的接口,通過FindWindow獲取窗口句柄,用IsJavaWindow來判斷篩選出Java程序的窗口。拿到窗口后,可以根據(jù)窗口句柄獲取虛擬機(jī)編號(hào)vmID 和根節(jié)點(diǎn)ac。之后就可以使用vmID和ac,通過之前Server提供的接口,來獲取子節(jié)點(diǎn)界面元素的vmID和ac、獲取界面元素的信息、以及調(diào)用界面元素支持的點(diǎn)擊輸入等方法。
JAB技術(shù)的初衷也是為了方便殘疾人使用,因此對(duì)自動(dòng)化技術(shù)的支持并不好。
圖3?JAB架構(gòu)圖
09?SAP
SAP 提供了 Scripting Engine 來進(jìn)行用戶界面自動(dòng)化。SAP Scripting Engine 是一套基于 COM 的接口,提供了 SAP 全面的腳本化支持。
10?Citrix Virtual Channel
Citrix 提供了 Virtual Channel 的機(jī)制來滿足 Client 和 Server 之間的通訊需求。利用 Virtual Channel,我們可以向 Citrix 虛擬桌面發(fā)送任意指令、獲取業(yè)務(wù)所需信息。Citrix 是基于 ICA (Independent Computing Architecture) 協(xié)議來實(shí)現(xiàn)的。
圖4?Citrix Virtual Channel
11?RDP Virtual Channel
RDP (Remote Desktop Protocol) 是微軟開發(fā)的一套遠(yuǎn)程桌面協(xié)議。RDP 也提供了 Virtual Channel 機(jī)制來滿足 Client 和 Server 之間的通訊需求。
圖5?RDP Virtual Channel
12?Selenium
Selenium是一個(gè)開源的Web自動(dòng)化測試工具,它支持所有主流的瀏覽器,可以實(shí)現(xiàn)打開瀏覽器,獲取網(wǎng)頁界面元素?cái)?shù)據(jù),保存網(wǎng)頁截屏等操作。
圖6?Selenium執(zhí)行過程
13?Chrome Extension
Chrome 瀏覽器插件是允許開發(fā)者自定義用戶使用體驗(yàn)的一種技術(shù)??梢岳?Web 技術(shù),如 HTML、CSS、JavaScript 來自定義瀏覽體驗(yàn)。
?智能定位與操控技術(shù)
從之前的介紹可以看到,系統(tǒng)和應(yīng)用程序的界面元素框架種類繁多,不同應(yīng)用程序需要的自動(dòng)化技術(shù)不盡相同,例如Chrome瀏覽器需要使用Web自動(dòng)化技術(shù)、Oracle ERP需要使用Java自動(dòng)化技術(shù)、SAP需要使用SAP自動(dòng)化技術(shù);同一種應(yīng)用程序在不同操作系統(tǒng)上,自動(dòng)化的實(shí)現(xiàn)方式也有所差別,例如大多數(shù)RPA產(chǎn)品都依賴Windows的.Net框架來操控應(yīng)用程序,在Linux等操作系統(tǒng)上完全無法使用。
以Chrome瀏覽器為例,多數(shù)RPA產(chǎn)品會(huì)選擇使用開源的Selenium來實(shí)現(xiàn)對(duì)Chrome瀏覽器的自動(dòng)化操控。Selenium是一個(gè)著名的Web應(yīng)用測試工具,它提供了豐富的API接口,可以非常方便的被Python、Java等語言調(diào)用,同時(shí)也存在驅(qū)動(dòng)版本必須和瀏覽器版本嚴(yán)格對(duì)應(yīng),以及容易被網(wǎng)頁檢測到等缺點(diǎn)。Selenium無法用于操控其他應(yīng)用程序,因此需要單獨(dú)為瀏覽器設(shè)計(jì)一整套自動(dòng)化控制模塊。較為成熟的RPA產(chǎn)品通常會(huì)選擇自研瀏覽器插件,用插件實(shí)現(xiàn)相同的功能。自研瀏覽器插件可以將瀏覽器和其他應(yīng)用程序的自動(dòng)化接口進(jìn)行統(tǒng)一,但是遺憾的是,很多RPA產(chǎn)品并沒有這么做。將瀏覽器作為特例或許會(huì)方便熟悉網(wǎng)頁測試技術(shù)的開發(fā)者快速上手,但對(duì)于不熟悉相關(guān)技術(shù)的開發(fā)者,無疑增加了巨大的學(xué)習(xí)成本。
由于上述原因,RPA流程開發(fā)需要考慮流程共涉及幾種自動(dòng)化技術(shù),會(huì)在幾種操作系統(tǒng)上運(yùn)行。RPA開發(fā)人員不僅需要了解業(yè)務(wù)系統(tǒng)的每一部分使用了何種自動(dòng)化技術(shù),在開發(fā)中選用正確的模塊,還需要了解流程會(huì)在哪些操作系統(tǒng)上運(yùn)行,為每種操作系統(tǒng)開發(fā)一個(gè)單獨(dú)的流程。隨著RPA涉及業(yè)務(wù)系統(tǒng)的范圍擴(kuò)大,以及國產(chǎn)操作系統(tǒng)的普及,流程開發(fā)成本將大幅提高。
RPA界面元素智能自適應(yīng)定位與操控技術(shù)將這些自動(dòng)化技術(shù)進(jìn)行了統(tǒng)一,對(duì)不同操作系統(tǒng)做了兼容。在RPA流程開發(fā)過程中不需要區(qū)分自動(dòng)化技術(shù),同一流程可以在不同操作系統(tǒng)中直接運(yùn)行,能大幅降低開發(fā)成本。
智能定位與操控的技術(shù)實(shí)現(xiàn)
RPA界面元素智能自適應(yīng)定位與操控技術(shù)融合了當(dāng)前主流的自動(dòng)化技術(shù),通過高度抽象實(shí)現(xiàn)不同自動(dòng)化技術(shù)的統(tǒng)一調(diào)用,通過基于規(guī)則的自動(dòng)化技術(shù)切換器實(shí)現(xiàn)不同自動(dòng)化技術(shù)的智能切換。
圖7?智能元素捕獲器架構(gòu)圖
以捕獲和操作使用JAB自動(dòng)化技術(shù)的Java應(yīng)用程序?yàn)槔?。使用者先用界面元素分析器捕獲目標(biāo)元素,此時(shí)根據(jù)鼠標(biāo)點(diǎn)擊的位置,界面元素分析器可以獲得目標(biāo)元素所在的窗口以及窗口所屬的應(yīng)用程序并拿到窗口和應(yīng)用程序的信息。根據(jù)這些信息,自動(dòng)化技術(shù)切換器將根據(jù)規(guī)則選擇最合適的自動(dòng)化技術(shù)。在這個(gè)例子中會(huì)智能切換到JAB自動(dòng)化技術(shù)。接下來,界面元素分析器會(huì)調(diào)用“獲取指定位置下的目標(biāo)元素”這個(gè)方法獲取目標(biāo)元素,該方法的底層實(shí)現(xiàn)基于JAB自動(dòng)化技術(shù),該目標(biāo)元素所具有的屬性和支持的方法也都是通過JAB自動(dòng)化技術(shù)得到的。這些屬性和方法也是抽象的,通過JAB自動(dòng)化技術(shù)獲取到的屬性role會(huì)被映射為標(biāo)準(zhǔn)的control,通過JAB自動(dòng)化技術(shù)獲取到的方法Click會(huì)被映射為標(biāo)準(zhǔn)的Invoke。使用者想要實(shí)現(xiàn)點(diǎn)擊目標(biāo)元素,只需要按照統(tǒng)一的規(guī)則調(diào)用Invoke方法即可,不需要關(guān)心該方法底層是如何實(shí)現(xiàn)的。
定位目標(biāo)元素還存在一個(gè)很常見的問題,目標(biāo)元素的屬性和在UI中的位置偶爾會(huì)發(fā)生變化。例如有些窗口標(biāo)題會(huì)帶版本號(hào),一旦更新應(yīng)用程序就會(huì)發(fā)生變化。當(dāng)這些發(fā)生變化時(shí),就有可能定位失敗。為了更好地定位元素,用戶界面被抽象為了一個(gè)文檔對(duì)象模型(Document Object Model),支持使用CSS語法和XPath語法的元素選擇器定位目標(biāo)元素,元素選擇器是一段文本,包含了元素的屬性和層級(jí)關(guān)系,支持模糊匹配。
圖8?DOM 結(jié)構(gòu)
文檔對(duì)象模型常用于操縱HTML和XML數(shù)據(jù),它將整個(gè)文檔抽象為邏輯上的對(duì)象,然后定義了訪問和操作這些文檔的方法。文檔對(duì)象模型獨(dú)立于任何系統(tǒng)平臺(tái)和編程語言,使用文檔對(duì)象模型提供的方法,可以構(gòu)建文檔、導(dǎo)航其結(jié)構(gòu)以及添加、修改或刪除元素和內(nèi)容。用戶界面也可以抽象成一個(gè)文檔對(duì)象模型,形成一個(gè)樹結(jié)構(gòu),每個(gè)界面元素都是用戶界面樹的一個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都是一個(gè)抽象的元素對(duì)象,有相同的屬性和方法。在界面元素分析器和應(yīng)用程序的通信過程中,跨系統(tǒng)兼容的自動(dòng)化技術(shù)切換器會(huì)根據(jù)獲取到的應(yīng)用程序信息按照規(guī)則自動(dòng)切換,對(duì)接相應(yīng)的自動(dòng)化技術(shù)接口,用獲取到的界面元素信息來構(gòu)建抽象元素對(duì)象以及文檔對(duì)象模型。
在元素分析器界面,可以看到用戶界面樹的整體結(jié)構(gòu)和每個(gè)界面元素的各種屬性,通過定位語句,可以定位到滿足定位語句的目標(biāo)元素。定位語句采用自研語法解析技術(shù),同時(shí)支持CSS語法和XPath語法,支持按屬性精準(zhǔn)匹配、前綴匹配、后綴匹配和模糊匹配,支持描述元素間的后代關(guān)系、父子關(guān)系和兄弟關(guān)系,自由度極高,適應(yīng)用戶界面變化能力強(qiáng)。捕獲元素后會(huì)自動(dòng)生成適合的元素選擇器,使用者也可以在此基礎(chǔ)上手動(dòng)修改以提高定位的靈活性和準(zhǔn)確度。
圖9 Windows元素捕獲器
RPA界面元素智能自適應(yīng)定位與操控技術(shù)同樣支持國產(chǎn)操作系統(tǒng),國產(chǎn)操作系統(tǒng)大多是基于Linux改造的,借助Qt-at-spi技術(shù),可以通過Linux的調(diào)試接口獲取到圖形界面上應(yīng)用程序的界面元素。針對(duì)不同的國產(chǎn)操作系統(tǒng),具體實(shí)現(xiàn)細(xì)節(jié)有所區(qū)別。通過封裝,實(shí)現(xiàn)了各國產(chǎn)操作系統(tǒng)和Windows操作系統(tǒng)接口的統(tǒng)一。
圖10 UOS元素捕獲
目前RPA界面元素智能自適應(yīng)定位與操控技術(shù)已兼容WIN32、UIA、MSAA、JAVA、SAP、Chrome、IE、Firefox、X11等多種自動(dòng)化技術(shù)。借助自動(dòng)化技術(shù)智能切換方案,使用過程中選擇器會(huì)智能切換自動(dòng)化技術(shù)。切換方案同時(shí)支持自定義配置,可以應(yīng)對(duì)特殊場景的需求。達(dá)觀全能界面元素選擇器的可拓展性很強(qiáng),新的自動(dòng)化技術(shù)可以通過公共接口無縫接入,改造和升級(jí)都十分方便,不會(huì)影響現(xiàn)有的RPA流程。
RPA界面元素智能自適應(yīng)定位與操控技術(shù)同時(shí)兼容多種操作系統(tǒng),包括Windows7 SP1以上的主流Windows操作系統(tǒng)、MAC系統(tǒng)、國產(chǎn)麒麟、統(tǒng)信、中科方德系統(tǒng)等。RPA流程可以輕松在這些系統(tǒng)間遷移,相同應(yīng)用程序的同一界面元素定位語句完全相同,相同操作的底層實(shí)現(xiàn)會(huì)根據(jù)當(dāng)前運(yùn)行的系統(tǒng)自動(dòng)切換。相比之下,其他RPA產(chǎn)品多是基于Windows的Net框架實(shí)現(xiàn)的界面元素定位和操控,無法遷移到其他操作系統(tǒng)中運(yùn)行的。
未來展望?
01?兼容更多自動(dòng)化技術(shù)
目前,還有一些自動(dòng)化技術(shù)沒做到兼容,例如Citrix虛擬化應(yīng)用、RDP遠(yuǎn)程桌面等。這些場景下仍然需要開發(fā)者采用相應(yīng)的技術(shù),做針對(duì)性開發(fā)。后續(xù)RPA界面元素智能自適應(yīng)定位與操控技術(shù)將加入對(duì)更多自動(dòng)化技術(shù)的支持,進(jìn)一步優(yōu)化RPA開發(fā)者的體驗(yàn)。
02?兼容更多操作系統(tǒng)
當(dāng)下,國產(chǎn)操作系統(tǒng)發(fā)展迅速,麒麟、統(tǒng)信、中科方德等國產(chǎn)操作系統(tǒng)的市場越來越大,后續(xù)在這些國產(chǎn)操作系統(tǒng)上開發(fā)和運(yùn)行RPA流程的需求也會(huì)越來越多。除此之外,移動(dòng)設(shè)備上也有一些運(yùn)行RPA流程的需求。兼容這些操作系統(tǒng)也同樣在開發(fā)計(jì)劃之內(nèi)。
03?開發(fā)基于圖像的自動(dòng)化技術(shù)
雖然大多數(shù)應(yīng)用程序都支持自動(dòng)化技術(shù),但仍有少數(shù)應(yīng)用缺乏相關(guān)支持。達(dá)觀全能界面元素定位和操控技術(shù)將依托公司的自研AI能力,開發(fā)圖像自動(dòng)化技術(shù)來解決這一問題。該技術(shù)會(huì)將用戶界面按照不同層級(jí)進(jìn)行智能分割,提取出不同層級(jí)的圖像作為元素對(duì)象,通過圖像技術(shù)構(gòu)造用戶界面樹并提取出元素對(duì)象的屬性信息。這一技術(shù)將徹底解決應(yīng)用程序不支持自動(dòng)化技術(shù)的問題,真正做到通用且無侵入的定位和操控界面元素。
作者簡介
金克:達(dá)觀數(shù)據(jù)技術(shù)副總裁,負(fù)責(zé)達(dá)觀數(shù)據(jù)RPA產(chǎn)品團(tuán)隊(duì)組建和研發(fā)。在加入達(dá)觀之前,聯(lián)合創(chuàng)立“飛語云通訊”并擔(dān)任CTO,在系統(tǒng)工程開發(fā)、大規(guī)模并發(fā)網(wǎng)絡(luò)、Go語言程序設(shè)計(jì)等方面有豐富的經(jīng)驗(yàn),先后在格爾軟件,愛克發(fā)醫(yī)療,盛大創(chuàng)新院,飛語等公司就職,有十余年的軟件開發(fā)經(jīng)驗(yàn),帶領(lǐng)團(tuán)隊(duì)參與了信息安全,醫(yī)療影像,云存儲(chǔ),支付和計(jì)費(fèi)系統(tǒng)、云通訊平臺(tái)等的研發(fā)工作。2021年上海“張江工匠”獲得者。