簡介:
Citrix通常被視為虛擬化環境。在這種情況下,用戶界面表示為圖像,因此我們無法通過操作系統直接與應用程序進行交互。本課將介紹在Citrix自動化中使用的一些方法:包括圖像、文本和按鍵的自動化,使用Citrix錄制器,以及設置和使用OCR。
學習大綱:
- 如何使用Citrix錄制模式
- 如何通過Click Image活動實現圖像的自動化
- 如何通過Click Text活動實現文字的自動化
- 如何使用Scrape Relative提取數據
1. Citrix Recording和鼠標活動
Citrix錄制器使用的工具和方法專為虛擬機的自動化而設計,但是它在其他類型的自動化中也很有用。
VM(Virtual Machine,
)通常在服務器上運行,用戶僅能看到界面的圖像,因此UiPath無法直接與VM上的應用程序進行交互,Selector在這種情況下也無法使用。之前的錄制方法都是先錄下一組操作再讓程序重放,而使用Citrix錄制時,我們需要“手把手”地教會機器人在VM上應該怎樣做。實例:打開遠程桌面上的某應用程序,選中Deposit單選按鈕,在右邊的文本框里輸入金額。
分析:人為的操作是,首先先讀取元素的名稱、描述、標簽等,然后再選取對應的控件,有些還需要錄入數據。
方法:根據之前分析的人為做法,我們可以讓機器人去做同樣的事情。
1) 點擊Click Image工具,拖動鼠標框選界面中的任何元素,但要確保所選的部分在界面上是唯一的。
這里我們選擇Deposit單選按鈕,在這個界面里沒有和它相同的地方。
2) 選取完成后彈出對話框,在對話框里可以設置鼠標點擊的位置、在區域外部或者內部點擊。下圖設置為在矩形框的中間點擊鼠標。
3) 使用這個工具不能選擇文本框這一類元素,但是可以選擇距離它最近的,同時又是界面上唯一的元素,並且該元素的位置相對於目標文本框是不變的。這里我們選擇文本框的標簽Cash In。
4) 選擇完成后彈出對話框,用indicate a point on the screen來指定鼠標點擊的位置,即文本框。
5) 最后,使用錄制器的Type工具在文本框里輸入金額。
6) 還可以使用另一種工具:Click Text。
點擊Click Text工具,再點擊目標文本,會彈出Screen Scraper窗口。該界面和之前學過的Screen Scraper工具的界面基本一致,但是多了幾個選項。
7) 在Text to be found文本框里輸入目標文本,此處我們輸入第三個文本框的標簽文字Not On Us Check。輸入完成后,UiPath就會找到並點擊這個文字。但是這里我們想要點擊的是文字旁邊的文本框,因此還需要設置Set mouse position。
*Occurence在當界面上有相同的文本時可以用得到。
8) 點擊Set mouse position后,會出現與Click Image工具相似的對話框。點擊indicate a point on the screen,再點擊目標文本框即可。最后使用Type工具輸入金額。
比較Click Text和Click Image:
- Click Text工具使用OCR掃描VM的屏幕來獲取文本信息,因此即使窗口主題和文字大小發生改變,它依然可以正常運行。但是由於OCR並不能保證100%的准確,只要某一個字母出現錯誤,程序就容易失控。
- Click Image工具的速度更快且更准確,但是它對於圖形的變化比較敏感。當應用程序的顏色或背景的精細度發生變化時,它就很容易出錯。
參數設置:
下面是Click Image活動和Click OCR Text活動的一些常用參數:
1) Click Type:設置點擊鼠標的方式,比如單擊、雙擊等。,雙擊或者單機,左鍵、中間、右鍵可以在這里選擇。添加輔助按鍵
2) Mouse Button:設置點擊的按鈕,左鍵、右鍵還是中鍵。
3) Key Modifiers:添加輔助鍵。
4) Accuracy:Click Image的參數。取值范圍為0-1,值越高代表要求圖片的相似度越高。1表示圖片必須100%匹配,0.8在准確性和可靠性上比較平衡。
2. Citrix Recording和鍵盤活動
Click Image和Click Text存在一些缺點使它們在一些情況下無法做到100%的准確,因此有時候Keyboard Automation可能是更好的選擇。
思路:
使用Tab鍵來導航,或者使用快捷鍵來激活應用程序的某些功能。
方法:
用Type工具即Type Into活動添加按鍵。
1) 可以分別添加到多個Type Into活動。
2) 也可以將多個按鍵活動組合到一個Type Into活動中。添加空格是為了當Tab跳到Accept按鈕上時按下該按鈕。
不管是不是在VM上,Keyboard Automation都是與應用程序交互的一個非常有效的方法。
3. 從VM中提取信息
方法有兩種:Select & Copy或者Scrape Relative
Select & Copy工具:僅對可選取的文本有效。所有命令都將發送給整個VM窗口,因此動作只會發生在當前激活的文本框里,需要結合Click Image活動、Click Text活動或者Keyboard Automation三種輸入方法先激活目標文本框。
注意:剪貼板必須能夠在本地電腦和Citrix環境下共享才可以使用此方法。
相關活動:
- Type Into活動:選取文本
- Copy Selected Text活動:復制文本,輸出變量在參數Result里。
Scrape Relative工具:根據一個錨點,獲取圖片里的某一部分信息。
實例:獲取Transaction#和Total Deposit的數據(二者不是selectable fields)。
方法:
1) 選擇Screen Scraping下拉菜單中的Scrape Relative工具。
2) 通過拖拽選取錨點區域。這里首先選取Total Deposit。
3) 選取結束后彈出對話框,要求指定與錨點相關的區域,即要獲取的文本所在的區域。
4) 同樣通過拖拽選取相關的區域。這里選取Total Deposit的值。
5) 選取完成后彈出Screen Scraper的向導窗口,如果得到的預覽數據不理想,可以修改OCR Engine和Scale的值來獲得更好的結果。這里修改為Google OCR,Scale設置為3。
相關活動:
- Find Image活動
- Translate Clipping Region活動
- Get OCR Text活動
- Reset Clipping Region活動:Clipping Region是共享資源,每次使用完最好重置以避免干擾。
*輸出變量在Get OCR Text活動中。
4. 練習
下載並打開Expenselt應用程序,只通過Image/Text和Hotkeys來登陸賬戶。
思路:使用Citrix錄制模式進行操作。
注意:確保Microsoft OCR Engine已安裝。
*本課使用過的新活動、方法、函數等:
Click Image
Click OCR Text
Copy Selected Text
Find Image
Translate Clipping Region
Reset Clipping Region