-
UiPath RPA開發人員的5個常見錯誤
-
#1 未找到選擇器/ UI元素未發現
-
#2 調用的對象是空的
-
#3 活動超時問題
-
#4圖片未找到問題
-
#5保存下載文件的問題
UiPath RPA開發人員的5個常見錯誤
#1 未找到選擇器/ UI元素未發現
異常類型:UiPath.Core.SelectorNotFoundException
Uipath流程測試或執行的時候,最容易出現的錯誤就是元素識別錯誤。其實無論是使用Uipath還是其它RPA工具,這個錯誤始終都可以排在第一位。
導致這個錯誤的原因一般有以下幾點:
* 在一個或多個屬性中捕獲的特定於環境的名稱,例如qa / uat / dev等。應用程序URL包含端口號,該端口號在不同環境中有所不同 “ cls”或“ title”或CSS屬性中的動態值。
* 在單擊或在某些字段中鍵入之前,沒有檢查構建以測試元素是否存在。
* 使用動態選擇器來構建標題或其他格式不正確且空間未調整的屬性。
* 使用id屬性;有時屬性ID會動態更新,因此請使用通配符並形成自己的自定義選擇器。
* 未使用“附加瀏覽器/附加”窗口。
RPAPlus:關於Attach Browser或Attach Windows ,這一步最核心的意義是要告訴RPA,你需要跟某個特定的瀏覽器打交道,而不是另一個有相似Selector的窗體,別的窗體獲取信息可能報錯,可能獲取了錯誤信息而不自知。Uipath在元素拾取階段並不會像BluePrism之類的工具強制Attach ,這樣帶來的使用體驗是,一個看起來更方便,一個更嚴謹。
#2 調用的對象是空的
這是Uipath開發容易犯下的另一個常見的錯誤。
異常類型:System.NullReferenceException
當使用沒有設置值的變量(未初始化)時,通常會發生這個錯誤。該錯誤的說明是很容易理解,但是如果沒有太多的開發經驗還是比較容易犯這個錯誤。
因此,此錯誤描述說被調用以獲取或設置其值的對象沒有引用。這意味着您正在嘗試訪問未實例化的對象。
“如果可以為空,則將為空”
這是一個非常常見的錯誤,可能由於各種原因而發生。根本原因確實取決於遇到的特定情況。
為避免此問題,
* 在if語句中專門使用變量之前檢查null
* 檢查是否從其他工作流程中收到任何參數
* 檢查是否使用剪貼板設置變量值
* 檢查文件讀取操作后是否嘗試獲取文件內容
* 循環活動前檢查並驗證DataTables
Uipath Studio中有“刪除未使用變量的功能”,不過可能無法完全消除以上的問題。
#3 活動超時問題
異常類型:UiPath.Core.ElementOperationException:達到超時
當機器人正在等待某些元素出現在屏幕上並且該元素即使在30秒(默認)后仍在屏幕上不可用時,會發生錯誤“超時”。
-
盡管可以使用元素的外觀,但是元素的背景代碼可能未完全加載到系統中。
-
某些不需要的彈出屏幕也會導致異常。
-
也可能是由於網絡延遲導致在特定的超時窗口中無法正確加載。
-
或者可能完全在不同的屏幕上
在對元素執行任何操作(如單擊/鍵入/雙擊/雙擊等)之前,可以使用“元素存在”活動修復大多數問題, 以便確認機器人是否能夠檢測到元素是否正確加載。
為了避免這種情況–
* 可以在“超時 ”字段中增加超時量 。確保使用配置值,並將配置文件中的變量和值作為字典鍵值對,參考REFramework中使用配置文件進行操作,並從常量表中獲取值一樣。
* 如果使用的屬性為“ WaitForReady”的活動,則嘗試使用“無/完整”的設置。
* 在對元素執行任何操作(例如,單擊/鍵入/雙擊等)之前,請使用活動“元素存在”。
#4圖片未找到問題
異常類型:Uipath.Core.ImageOperationException:找不到圖像
此類問題的主要原因是,當從Orchestrator運行流程時,它以不同的屏幕分辨率(與可能用於開發自動化工作流程的屏幕分辨率)連接到遠程環境(您的運行時機器人)。
在工作流程中,您可能已經使用了圖像來單擊它,但它不在遠程屏幕的可見部分中,而是有滾動條……
為避免此類情況,請確保為orchestrator應用相同的屏幕分辨率設置,以使編排器打開RDP CONNECTION。
* 首先開發一個工作流程,以獲取開發環境的屏幕分辨率設置。
* 使用“拍攝屏幕快照”活動和“保存圖像”活動來捕獲開發環境的屏幕分辨率。
* 檢查保存的圖像屬性中的詳細信息選項卡。注意深度,高度和寬度。
* 登錄到Orchestrator並更改機器人的運行時設置(分辨率寬度,高度和深度)。
* LoginToConsole設置為false。在注銷RDP的情況下,機器人將能夠創建自己的新的單獨會話。
* 重新啟動uipath服務(運行-> services.msc-> Uipath Robot->重新啟動)
注意: 確保從機器人機器注銷,不要直接斷開連接。
可以在Orchestrator運行時窗口或Robot UiPath.Settings文件中應用設置。前者將覆蓋后者的設置。
#5保存下載文件的問題
對於許多Uipath開發人員來說,這是個很麻煩的問題。
以下是一些相關問題–
-
無法將文件保存到特定位置
-
文件另存為選擇器不起作用
-
Type into 文件保存不起作用
-
在保存當前日期的文件時有一些問題
-
從IE下載文件時出現問題,因為無法檢測到另存為工具欄
-
從Chrome下載文件時出現問題,因為它會強制下載
-
從Internet Explorer保存文件時選擇下拉菜單另存為的問題
述所有問題都沒有萬能的解決方案,也取決於瀏覽器設置。
為了避免工作流中出現此類問題,應該檢查以下內容
* 對於“另存為文件”選擇器不起作用,因為選擇器對於指向對話框的類值而言看起來不正確。確保檢查saveas按鈕的cls屬性。
* 對於輸入路徑時遇到的問題,可以使用path+”\”+document_name+”. extention”+”[k(enter)]” ,並啟用SENDWINDOWMESSAGE屬性,並禁用“模擬類型”;還要在DELAYBETWEENKEYS中設置一些時間戳,大約2000毫秒
* 要保存具有今天日期的文件,請使用“filename” +”_”+now.tostring(“dd_MMM_yy”)+”.extension” –可以相應地更改日期格式
* 對於與chrome保存位置有關的問題,請選中“在下載之前詢問每個文件的保存位置”旁邊的復選框。在瀏覽器設置中是否選擇。Chrome的默認行為是自動將文件下載到當前設置的“下載”文件夾中。需要將Chrome瀏覽器的設置更改為在下載文件之前先詢問位置