UiPath Level 1-Lesson 8. Advanced Citrix Automation


學習大綱

  • 如何使自動化操作識別應用程序的不同狀態
  • 如何使用Highlight活動
  • 如果在Citrix環境下打開某個應用程序

 

1. 識別應用程序的狀態

對於基於圖片的自動化,一個很容易被忽略的問題是,如何讓程序知道在什么時候執行某個操作。比如等待某個應用程序或網頁加載完成,或是等待某個進程結束。我們需要讓UiPath知道應用程序的狀態,以判斷是否可以進行下一步操作。

實例:在Citrix環境下,打開SAP的主頁並登陸賬號。

分析:在本地電腦上可以直接使用錄制工具,因為UiPath會等待元素加載完成才與之互動。但是Citirx環境相當於一張圖片,UiPath無法直接訪問Citrix上的各種元素。解決方法是,讓UiPath模仿人是如何識別某個應用或者網頁是否加載完成的。我們可以讓UiPath尋找某個視覺元素,它可以表示應用或者網頁的狀態是完成加載的或者就緒的,比如等待某個圖片或者按鈕的出現。對於本例,最好的方法是等待網頁標簽上的加載圖標消失,並被網站圖標取代,這需要使用Find Image活動

方法:

1) 手動添加一個Find Image活動,選中加載完成后的網頁圖標。

*Find Image活動可以停止執行進程,直到特定的圖片被找到或者等待超時。

2) 為了進行測試,添加一個Message Box活動,當圖片找到時就會彈出提示。

3) 回到Google首頁運行程序。結果是提示框彈出,這和預期的不同,因為我們並沒有打開SAP主頁。

4) 為了找出問題所在,我們可以使用Highlight活動。首先,設置Find Image活動的參數,使它輸出一個UiElement類型的變量elmnt;接着在Find Image活動后面添加一個Highlight活動。

Highlight活動可以高亮標示某個裁剪區域、元素或者Selector。這里我們將參數Element指定為Find Image活動的輸出變量,將參數Color改為紅色,將參數Highlighting Time設置為200(即2秒)。

5) 運行程序,下圖中的元素被標示出來了。為了使程序能正確識別網頁的狀態,我們可以去掉這個鏈接。重新運行程序,Message Box就不會彈出了。

6) 添加一個Click Image活動來點擊登陸圖標。

7) 在Log On窗口中,焦點默認落在User Name的文本框里。使用Tab鍵導航會比較便利。

8) 添加一個Type Into活動,輸入Email Address + 一次Tab + Password + 三次Tab + 一次Enter。Email和Password都可以用變量替換。

思考:我們的程序可能會出現這樣的問題,有時候Log In窗口還沒有加載好,就已經開始進行Type Into的操作了,應該如何解決?

一個解決方案是在Click Image活動和Type Into活動之間添加一個延時。但是這不是最優的解法,因為總會有加載的時間比設置的延遲要長的情況。更多情況下加載的時間會比設置的延遲更短,這就不必要的拖慢了程序的運行速度。最好的解決方案還是添加Find Image活動


 

2. 打開Citrix上的應用程序

1) 雙擊應用程序的圖標

添加Click Image活動,將ClickType參數改為雙擊。

然而這種方法並不穩定。比如,在圖標被選中的情況下運行程序,由於圖標的背景色發生了改變,UiPath將找不到這個圖標。

解決方法是,可以在選取圖標時不把背景色選進去。

 

2) 為應用程序指定快捷鍵

右鍵→屬性→快捷鍵 (Shortcut Key)。設置的快捷鍵越復雜越好,以避免與已存在的快捷鍵沖突。

設置好快捷鍵后,添加一個Send Hotkey活動,並把它指定給Citrix窗口。

 

3) 運行命令

如果要求更高,比如需要在運行應用程序時添加一些參數,還可以使用Windows的運行(Run)命令。

實例:使用Notepad++打開text.txt文件。

思路

  • 找到Notepad++應用程序所在的路徑:在快捷方式的屬性里復制路徑。
  • 按下Win鍵+R鍵,打開運行窗口。如果Citrix版本不支持發送Win鍵+R鍵,將Citrix窗口全屏后再輸入就可以了。

在使用Win鍵+R鍵打開運行窗口時,我們打開的將會是本機的運行窗口而非遠程電腦上的。

使用Remote-Desktop應用程序發送特殊指令。視頻里的Ctrix版本無法發送Win鍵,但是可以打開開始菜單。

  

  打開開始菜單后,輸入CMD將打開命令提示符(Command Prompt)。我們可以輸入應用程序的路徑或者其他低級命令,以實現一些很有用的功能。

    

  

方法

  • 添加一個Click活動點擊最大化按鈕。
  • 添加一個Send Hotkey活動發送Win鍵+R鍵。
  • 創建兩個變量,變量app用來保存Notepad++的程序路徑;變量args用來指定參數,此例中,參數為要打開的文本文件的路徑。
  • 添加一個Type Into活動,輸入app+" "+args,再發送一個回車鍵。
  • 如果需要,還可以添加一Click活動退出全屏。 

 


 

3. 練習

假設你在遠程電腦上,通過雙擊打開某個應用程序的圖標(注意考慮圖標被選中和分辨率改變的情況)。

思路

當要找的圖片有三四種可能性時,比較直接的方法是在Pick活動塊里添加各種Pick Branch活動

方法

  • 添加一個Pick容器,並在其中添加三個Pick Branch活動。
  • 在第一個Pick Branch活動的Trigger區域里,添加Image Exists活動並截取目標圖標。在Action區域添加Click Image活動
  • 選中目標圖標,在第二個Pick Branch活動的Trigger區域里,添加Image Exists活動並截取圖標。在Action區域添加Click Image活動
  • 更改屏幕分辨率,在第三個Pick Branch活動的Trigger區域里,添加Image Exists活動並截取圖標。在Action區域添加Click Image活動
  • 這樣一來,不論UiPath在屏幕里找到了三個圖片中的哪一個,Click Image活動都將應用於對應的圖片。


 

*本課使用的新活動、方法、函數等:

Send Hotkey

Click

Pick

Pick Branch

Image Exist:檢查是否在指定的UI元素中找到了某個圖像。參數Accuracy可以調整查找的相似度;最終輸出一個布爾型變量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM