雲擴研習社 | RPA高階開發技巧(下)

encooRPA發表於2022-11-09

使用場景: 目前在編輯器中已內建雲擴自研瀏覽器,主要用於需要抓取瀏覽器請求的場景;比如瀏覽器請求返回中有一些透過介面自動化無法獲取的欄位,或者比介面自動化更高效的獲取目標資料;

抓包配置:

雲擴研習社 | RPA高階開發技巧(下)

配置檔案位置:

檔案配置介紹:

1)Encoobrowser.exe.config

雲擴研習社 | RPA高階開發技巧(下)

2)Cer資料夾 template.json

雲擴研習社 | RPA高階開發技巧(下)

對每一個 network 請求匹配,key值配到後生成帶value字首的檔案,儲存在 PathForStoringCacheFiles下;儲存的檔案會根據當前日期進行資料夾分割。檔名稱為 規則匹配值 毫秒級時間戳.json 檔案,如下圖所示:

雲擴研習社 | RPA高階開發技巧(下)

檔案內容格式如下:

雲擴研習社 | RPA高階開發技巧(下)

檔案格式為 request和response區分,其中request欄位已經做了序列化處理,而response需要手動序列化。

編寫程式碼

支援在流程中編寫程式碼片段或匯入外部的程式碼。支援C#, Python和PowerShell。當元件或者簡單的表示式無法滿足業務需求時,可以使用自定義程式碼類元件完成一些複雜的功能。

C#程式碼

C#程式碼與編輯器的表示式是高度契合的。C#程式碼包含一個執行C#程式碼元件和一個C#程式碼檔案。

這裡介紹一下幾種使用方式:

從左側元件庫中找到執行C#程式碼元件並拖拽至設計皮膚,預設會產生一個隱藏的cs程式碼檔案.code\CSharp\執行CSharp程式碼.cs

雲擴研習社 | RPA高階開發技巧(下)

當編輯程式碼時,會把隱藏的cs程式碼檔案.code\CSharp\執行CSharp程式碼.cs包含進專案中。

也可以在專案名上右鍵->匯入檔案,匯入一個cs檔案,然後將該cs檔案拖拽入編輯器,會自動生成執行C#程式碼元件。

注意:

  • 執行CSharp程式碼元件中預設有一個Run()方法,這個Run方法是程式碼執行的入口,不能更改。在C#程式碼中可以直接使用流程定義的變數和引數,也可以直接給流程定義的變數和引數賦值。

Python程式碼

流程中也可以使用python進行程式碼編寫。Python相關的元件在元件庫->程式碼程式設計->Python這個目錄中。注意,使用執行Python程式碼元件的時候,該元件必須要在Python環境這個元件的範圍內。

PowerShell

如果你對PowerShell非常熟悉,也可以使用執行PowerShell元件。

管理外部程式碼

Nuget程式碼市場

在流程中我們可以下載Nuget包,從而使用第三方的類庫。

雲擴研習社 | RPA高階開發技巧(下)

私有程式碼市場

我們可以透過管理市場來建立私有的程式碼市場,這樣我們可以透過這個私有市場共享和使用我們自己開發的Nuget包。

外部程式碼的Package更新

當我們建立了私有的程式碼市場以後,我們可以把自己的nuget包複製到市場上。

假如設定的是本地路徑,就可以直接把nuget包放到這個路徑上。

假如設定的是網路路徑,也可以把nuget複製到網路路徑上。

Nuget包的版本不是由編輯器控制的,編輯器中可以看到的包的版本取決於私有市上有多少這個包的不同版本的nuget包。比如在設定的本地路徑上有ESB.1.0.0.nupkg和ESB.1.0.1.nupkg兩個包,那麼在程式碼市場上就可以下載安裝這兩個包。

Excel高階技巧

雲擴支援用同一批元件操作WPS和EXCEL,無需區分。

執行宏

Excel宏是一些指令集,每個人在製作表格的過程中也許會有多種功能,而一直重複做的話會非常繁瑣,因此就可以透過宏錄製來節約時間簡化步驟,對於提高工作效率是非常有好處的。對於經常使用excel表格來工作的話,能有效地提高工作,讓自己變得更輕鬆。

一些Excel元件裡未曾覆蓋到的功能,比如調整單元格的寬度,高度就可以由執行宏元件完成,參考如下示例:

1.準備

在開啟/新建 元件中開啟宏功能:

雲擴研習社 | RPA高階開發技巧(下)

開啟Excel,在Excel選項-信任中心, 開啟宏許可權:

雲擴研習社 | RPA高階開發技巧(下)

2.生成宏程式碼

宏程式碼的使用可以自己書寫,亦可有Excel裡錄製宏功能完成,如圖:

雲擴研習社 | RPA高階開發技巧(下)

錄製完成後,可以點選檢視宏,然後找到裡面的宏程式碼

雲擴研習社 | RPA高階開發技巧(下)

可以把裡面程式碼複製出來,放到一個txt檔案鐘,如:VBA.txt按照步驟可以生成可執行的宏程式碼檔案,裡面一些引數可以自己定義。

雲擴研習社 | RPA高階開發技巧(下)

3.編輯執行宏元件

如上圖示,定義了3個引數,單元格地址,列寬和行高來更自由的調整單元格。

雲擴研習社 | RPA高階開發技巧(下)

最後使用執行宏元件,填入各種引數,就可以正確執行:

雲擴研習社 | RPA高階開發技巧(下)

自動填充

自動填充元件,等同於在Excel選中一個單元格,下拉拖拽的過程;

雲擴研習社 | RPA高階開發技巧(下)

如果EXCEL內建有大量的序列(星期、日期、序列等),透過填充功能可以方便、快捷地輸入這些內建序列。

設定單元格格式

這個元件包括日常涉及到數值,貨幣,日期,時間等等,使用者體驗幾乎和Office Excel設定單元格效果一樣。

雲擴研習社 | RPA高階開發技巧(下)

複製貼上

可以跨工作表或者當前工作表內進行區域複製貼上,等同於在Office Excel選中一塊區域複製貼上效果。

雲擴研習社 | RPA高階開發技巧(下)

分列

分列就是將一列的資料按照既定分割規則填充到指定區域;

雲擴研習社 | RPA高階開發技巧(下)

網頁操作高階技巧

如何獲取頁面元素的特定屬性

可以使用獲取元素屬性值元件來獲取元素屬性,支援自定義元素屬性,只要目標元素上有對應的屬性名稱,都可以獲取;

在瀏覽器中按F12快捷鍵,找到對應的目標元素節點,檢視元素節點上是否有想要的屬性值,比如索引、連結、title、以及其他屬性都可以直接使用獲取元素屬性獲取。

如何批次獲取元素屬性

可以透過迴圈和獲取文字、獲取元素屬性值等元件獲取。也可以使用獲取結構化資料元件獲取,使用自定義規則獲取可以批次獲取指定節點上的節點屬性。

如何滾動頁面

可以透過滑鼠滾動(中鍵)元件或傳送快捷鍵PgDn來滾動頁面。

如何操作名稱相同的標籤頁

開啟多個同名標籤頁定位元素時會預設在第一個標籤頁定位,如果需要定位到其他標籤頁元素,可以在選擇器中不適用“Title”定位,改為使用“URL”或其他關鍵字進行定位。

如何操作日期類元素

通常日期選擇的元素均支援以標準格式輸入文字,可以使用“輸入文字”元件嘗試輸入“2022-05-13”,“2022/05/13”或“13-05-2022”等格式輸入;如果頁面不支援輸入文字,可透過元件“設定Web元素屬性值”直接對頁面上日期元素的屬性進行設定;

如上述方法均無效,可使用“點選”元件點選頁面上的需要使用的日期:

雲擴研習社 | RPA高階開發技巧(下)

可以使用變數來“SInfo”中的屬性如{{String1}}來動態設定自己需要選擇的時間。

雲擴研習社 | RPA高階開發技巧(下)

如何判斷網頁是否開啟

首先網站可以透過JS的方法“document.readyState”等於“complete”來獲取網站是否載入完成

  • 如果使用開啟瀏覽器元件時可以勾選“等待載入完成”屬性來幫助等待頁面狀態。如果頁面始終處於載入狀態,可以增加等待元素出現元件指定一個頁面載入完成後才會出現的元素來判斷頁面的載入或開啟的狀態。

如何獲取下拉框中的選項的內容

網頁下拉框的選項對應的是“Select”的“Option”,如圖

雲擴研習社 | RPA高階開發技巧(下)

可以透過使用元件“獲取元素屬性值”指定這個“Select”,之後選擇獲取該元素的“innerhteml”

雲擴研習社 | RPA高階開發技巧(下)

即可成功獲取

雲擴研習社 | RPA高階開發技巧(下)

桌面應用可以先新增一個“點選”元件展開下拉框,之後透過“獲取區域結構”指定展開的下拉框來獲取全部選項。

如何使用瀏覽器上“右鍵”選單項

使用元件點選指定要右鍵的元素,把屬性“滑鼠鍵”設定為“右鍵”即可。

雲擴研習社 | RPA高階開發技巧(下)

部分屬性可能不支援預設的點選方式,如未成功觸發也可修改屬性“點選方式”。

桌面端軟體精準定位技巧

如何挑選最適合的錄製技術,如何切換錄製技術

首先要確定是否需要頁面操作,如操作Excel、檔案、郵箱等已有相應元件的應用,推薦使用相應的元件做軟體自動化操作,遠比頁面操作要準確、穩定並且快速。確需進行介面自動化操作的,需要安裝對應的擴充套件,如Java擴充套件,Chrome擴充套件等。

在安裝擴充套件後指定元素時通常使用預設的Automation錄製技術就會自動適配推薦的錄製技術,如錄製Chrome時會自動使用Chrome技術,錄製桌面應用預設使用UIA技術等等。

當上述自動適配的錄製技術無法滿足時,可以在指定元素時按“F4”來手動切換到自己需要的錄製技術,如把UIA技術換為對舊應用適配更好的IA技術等。

怎樣讓元件精準定位元素

使用定位的屬性越多,定位就越精確,請確保在選擇器中使用多個屬性,且儘量避免出現和使用“Index”屬性。此外在指定元素時指定到按鈕上的文字會比指定按鈕的框體更加精確,建議在指定元素時優先指定有文字的元素。

如何點選無法錄製的元素

部分元素無法直接錄製(如SAP表格),此時可以透過使用“點選”元件指定可以錄製的元素,之後設定屬性“偏移”,即可點選無法錄製的元素:

雲擴研習社 | RPA高階開發技巧(下)

上述技術仍無法滿足使用場景時怎麼辦

1)使用AI系列元件,可以透過呼叫第三方的服務實現一些功能,不過需要付費使用;

2)影像識別,影像識別即錄製下指定的元素圖片,在執行時將目標區域與錄製時的圖片進行對比,當達到設定的相似度後即可成功執行。

需要使用影像識別可在指定元素時按住Ctrl再拖動滑鼠左鍵框選目標,這樣元件執行時就會以影像識別的技術去執行。需注意影像識別會受到諸如系統版本、解析度、縮放比例、視窗大小等各種情況影響,推薦在預設的其他錄製技術無效後再嘗試使用;

  • 螢幕文字化對MFC應用支援的非常好,但對其他應用支援較差。僅推薦對MFC應用進行自動化操作時使用。
  • 計算機視覺,計算機視覺元件會根據訓練的模型去智慧識別視窗中的元素和文字,訓練的模型越久,識別的精度就越高,不過當前的訓練模型仍舊有限,建議上述均無效後再嘗試使用。

透過傳送快捷鍵等方式實現自動化。可能有極少的應用由於框架和技術的老舊使得使用現有錄製技術均不能很好的操作時,可以使用傳送快捷鍵,座標等方式進行兜底操作。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015058/viewspace-2922593/,如需轉載,請註明出處,否則將追究法律責任。

相關文章