有時杂抽,通常的手動例程并不是自動化的最佳方法。在提交某種方法之前,請先仔細研究應(yīng)用程序的行為和 UiPath 的 集成或特性坯汤。
桌面自動化
當(dāng)機器人和應(yīng)用程序在同一臺機器上運行時怠蹂,最好使用 UI 自動化善延,因為 UiPath 可以直接與應(yīng)用程序內(nèi)的技術(shù)集成,以識別元素城侧、觸發(fā)事件并在幕后獲取數(shù)據(jù)易遣。
輸入方法
UiPath 有 3 中方法用來觸發(fā)應(yīng)用程序上的單擊活動或者輸入活動。這些方法在處理UI自動化的所有活動中都顯示為屬性嫌佑。
如果 SimulateType 或者 Simulate Click 屬性被選中豆茫,UiPath 鉤入應(yīng)用程序并觸發(fā)之指定 UI 元素(按鈕、文本框)的事件處理程序屋摇。
如果選中了 SendWindowMessages 屬性揩魂,UiPath 發(fā)送事件消息到程序的消息循環(huán)中,然后由程序的窗口程序派遣到目標(biāo) UI 元素內(nèi)部
如果沒有選擇上述選項炮温,Studio 會用硬件事件向系統(tǒng)驅(qū)動程序發(fā)送信號火脉,并讓操作系統(tǒng)將詳細信息分配給目標(biāo)元素。
這些方法應(yīng)該按照提出的順序來嘗試 SimulateClick 和 WindowMessages 更加快茅特,并且能在后臺工作忘分,但是它都依賴于應(yīng)用程序背后應(yīng)用的技術(shù)棋枕。
硬件事件在 Studio 中 100% 執(zhí)行像人工操作員一樣的動作白修,例如移動鼠標(biāo)指針和單擊特定的位置。然而重斑,在這種情況下兵睛,被自動化的程序必須顯示在屏幕上。這可以看作是一個缺點窥浪,因為它有被用戶干擾自動化運行
選擇器
有時祖很,自動生成的選擇器會提出易失性屬性值來識別元素,并且需要人工干預(yù)來校準(zhǔn)選擇器漾脂。
在開發(fā)假颇、測試和生產(chǎn)環(huán)境中,無論用戶是否登錄到應(yīng)用程序骨稿,可靠的選擇器每次都應(yīng)該成功地識別相同的元素笨鸡。
這里有一些關(guān)于如何在 Selector Editor 或者 UiExplor 中改進選擇器的技巧:
- 用使屬性看起來穩(wěn)定和有意義的屬性替換為易失性值
- 用通配符替換屬性值的可變部分
- 剔除屬性值全是通配符的屬性
- 如果編輯屬性沒有幫助,請嘗試添加更多的中間容器
- 避免使用 idx 屬性坦冠,除非它的值是非常小的數(shù)字形耗,如1或2。
在上面的選擇器中辙浑,我們注意到頁面標(biāo)題引用了選擇器被記錄的時間激涤,還有一些屬性具有隨機的 ID。通過調(diào)整屬性判呕,我們可以設(shè)計出一個比 UiPath 記錄器生成的更好的選擇器倦踢。
容器
與文件路徑類似送滞,選擇器可以是完整的,也可以是部分的(相對的)辱挥。完整選擇器從窗口或 html 標(biāo)識符開始累澡,具有在整個桌面上查找元素所需的所有信息,而部分選擇器僅在指定元素所屬的頂級窗口的 附加容器 中工作般贼,例如以下是一些常見的附加容器:
- OpenBrowser
- OpenApplication
- AttachBrowser
- AttachWindow
以下是一些關(guān)于完整和部分選擇器的更多信息愧哟。
使用帶有部分選擇器而不是完全選擇器的容器有幾個優(yōu)點:
- 可視地分組在同一應(yīng)用程序上工作的活動
- 稍微快一點,不要每次都去找最上面的窗口
- 在需要手動更新的情況下哼蛆,可以更容易地管理頂級選擇器
- 在處理同一應(yīng)用程序的兩個實例時必不可少
圖像自動化
如果沒有其他方法來識別屏幕上的 UI 元素( 比如選擇器或鍵盤快捷鍵 )蕊梧,圖像識別是自動化應(yīng)用程序的最后一種方法。
由于圖像要求元素完全顯示在屏幕上并且所有顯示的細節(jié)在運行時必須與設(shè)計時一致腮介,所以使用圖像自動化時必須格外小心肥矢,要確保程序執(zhí)行的可靠性。比實際需要的多選或者少選圖像可能導(dǎo)致圖像無法找到或者實際為錯誤的匹配叠洗。
考慮分辨率
圖像匹配對于環(huán)境變化是非常敏感的甘改,如桌面主題或屏幕分辨率的改變。
當(dāng)應(yīng)用程序在 Citrix 中運行時灭抑,分辨率應(yīng)大于或等于記錄工作流時的分辨率十艾。否則,可以通過稍微降低捕捉到的圖像精度因子來補償小的圖像失真腾节。檢查應(yīng)用程序布局如何調(diào)整自身以適應(yīng)不同的分辨率忘嫉,以確保視覺元素的接近,特別是在基于坐標(biāo)的技術(shù)(如相對單擊和相對抓取)的情況下案腺。
如果自動化系統(tǒng)支持不同的分辨率庆冕,則可以將并行記錄放置在 PickBranch 活動中,機器人可以使用任何一種匹配劈榨。
OCR 引擎
如果 OCR 為應(yīng)用程序返回了良好的結(jié)果访递,那么文本自動化是將環(huán)境影響降到最低的一個很好的選擇。Google tesseract 引擎在較小的區(qū)域工作更好同辣,而 Microsoft MODI 則適用于更大的區(qū)域拷姿。
在循環(huán)自動化中使用 MODI 引擎有時會造成內(nèi)存泄漏。這就是為什么建議通過單獨的工作流邑闺,使用隔離屬性調(diào)用 MODI 完成的抓取跌前。
UI 同步
當(dāng)應(yīng)用程序不處于工作流假定的狀態(tài)時,可能會發(fā)生意外行為陡舅。首先要注意的是應(yīng)用程序響應(yīng)機器人交互所需的時間抵乓。DelayMs 屬性使您能夠等待應(yīng)用程序響應(yīng)一段時間。但是,在處理過程中的某些步驟之前灾炭,必須對應(yīng)用程序的狀態(tài)進行驗證茎芋。度量可以包括使用其他交互之前等待所需應(yīng)用程序狀態(tài)的額外活動◎诔觯可能有助于下列活動的活動:
- Element Exists, Image Exists, Text Exists, OCR Text Exists
- Find Element, Find Image, Find Text Position
- Wait Element Vanish, Wait Image Vanish
- Wait Screen Text (在終端中)
后臺自動化
如果自動化是為了與人工用戶共享桌面田弥,則必須在后臺實現(xiàn)所有UI交互。這意味著自動化必須直接使用UI元素對象铡原,從而允許應(yīng)用程序窗口在過程中被隱藏或最小化偷厦。
- 通過 Click 和 Type Into 活動來導(dǎo)航和輸入數(shù)據(jù)時使用 SimulateType, SimulateClick, 和 SendWindowMessages 選項
- 使用 Set Text, Check, 和 Select 活動來在后臺輸入數(shù)據(jù)
- Get Text, Get Full Text, 和 WebScraping 是在后臺執(zhí)行輸出數(shù)據(jù)的活動.
- 使用 Element Exists 活動來驗證應(yīng)用程序的狀態(tài)
返回目錄
UiPath 常見問題及解決辦法匯總
更多 UiPath 相關(guān)的資訊,請關(guān)注公眾號:流程自動化機器人教程
由于簡書禁止直接在文章中插入公眾號二維碼燕刻,請點擊 這里 了解添加該公眾號的細節(jié)只泼。