在9月16號,51RPA小編分享了《RPA之術業有專攻篇》文章中提到,要能作到真正的到獨當一面,寫出優化,健壯,安全,通用和易維護的代碼,RPA的開發人員須要有必定的開發經驗,專業的人作專業的事纔是正道。分享一下在項目開發過程當中遇到的問題,以及如何解決的過程,延伸下「術業有專攻」這個話題。html
操做的是某網上銀行的桌面版的客戶端,裏面包含了自定義的組件。需求是調整記帳日期的開始日期和結束日期裏的值,經過手動的操做方式是將光標移動到年份,經過上下鍵調全年份,再經過右方向鍵移動到月份,經過上下鍵調整月份,相似的方法再調整日期。編程
該案例的難點在於記帳日期爲自定義控件,從表面看就一個字段,實際點擊進去會有三個獨立的字段(年月日),另外經過UiPath進行控件抓取也只能抓到整個字段,沒法抓到年月日。 安全
初步分析以後,會有下列三種的實現方式:工具
一、經過Type into,直接將日期賦值到記帳日期中測試
UiPath找到的開始日期和結束日期的選擇器的屬相徹底是一致的,沒法進行區分。致使在賦值的時候只能到結束日期上,沒法賦值到開始日期,而且年月日的順序會有錯誤。優化
二、經過Send Hotkey 發送Tab鍵到記帳日期中spa
經過發送Tab鍵能夠跳到結束日期,可是再經過上下鍵調整時,光標會自動跳到數據篩選中。另外經過Tab進行光標跳轉時,每一次跳轉的路徑也不相同,沒有規律可尋,沒法搞定。.net
三、經過Click Text的相對位置,找到記帳日期htm
經過Click「記帳日期」的相對位置定位到開始日期中的年份中,可是再經過上下鍵調整時,光標會自動跳到數據篩選中,沒法搞定。blog
另外須要說明下,在操做網銀這種軟件時,對代碼的健壯性要求要高些,儘可能避免使用Tab鍵之類的鍵鼠操做,由於這種系統的版本升級比較頻繁,版本間可能存在大的差別性。
通過上述的三種方法的測試,基本上肯定經過UiPath自己是沒法完成這一操做,只能藉助第三方的自動化工具了。
在《請理性看待RPA》一文中提到RPA自己就是自動化工具的一種,在RPA這一個詞語流行以前,市場上已經存在了多個開源或者免費的自動化工具,其中比較有表明性的有兩個:
Selenium -是一個開源的自動化工具,其主要用於Web應用程序的自動化測試。
AutoIt – 是一個免費的自動化工具,用於Windows GUI (圖形用戶界面) 中進行自動化操做。
對於這兩種自動化工具的操做,就徹底屬於軟件開發的範疇了,須要大量的編程。
像這種對GUI進行操做的狀況,就能夠嘗試使用AutoIt。經過使用AutoIt對記帳日期進行識別,發現能夠經過indexid將開始日期和結束日期進行區分,也就是能夠定位這兩個字段。
最終解決方案爲UiPath調用AutoIt來實現,以下:
另外還有一種狀況,有些自定義的控件(例如Table),經過RPA或者自動化工具是沒法抓取其內部的屬性,這種只能解析Visual Tree,經過父節點循環找到其子節點和相應的屬性值,以後再進行相關的取值,這也須要必定的編程技巧和經驗。
對於RPA開發者來講,具備必定的.net的開發經驗和熟悉RPA工具是必備的技能,最好對其餘的自動化工具或技術手段也要熟悉,還須要有能必定的解決問題的能力。
像這樣對技術的寬度和深度的要求,對非開發背景的人員來講,猶如一道鴻溝,很難跨越。
聞道有前後,術業有專攻,專業的人作專業的事纔是正道!