UiPath Level 1-Lesson 5. Advanced UI Interaction


學習大綱

  • 創建Input的三種方法和它們之間的不同
  • 如何使用Screen Scraping Wizard
  • 創建Output的三種方法和它們之間的不同
  • 如何使用Data Scraping Wizard

 

與UI的交互 (UI Interaction) 可以分為兩種:Input和Output。

Input (輸入):使應用程序做某件事。如鼠標單擊、文本錄入、鍵盤快捷鍵、鼠標右擊、鼠標懸停等。

Output (輸出):從應用程序中提取信息。獲得文本,找到元素和圖片,操作剪貼板等。

 

1. Input方法

Input方法  兼容性  運行速度 支持后台工作 支持Hotkeys 自動清空內容
Default 100% 50% X X
Window Messages 80% 50% X
Simulate Type/Click *70% 100% X

 

 

 

 

 

 

*Simulate Type/Click可以兼容99%的網頁應用和60%的桌面應用程序

  • Default方法使用鼠標和鍵盤的驅動模擬人為使用。這種方法總是管用,但是運行速度慢,而且不可以在后台操作。
  • 可以先使用Default方法確保程序能正常運行,然后再修改為其他兩種方法,看看是否能運行。
  • 如果不需要發送熱鍵,推薦使用Simulate方法,因為它的速度最快,且支持后台運行。之后再考慮嘗試Window Messages方法。
  • 可以在屬性面板里選擇使用那種Input方法。

實例驗證:

  • 打開記事本,使用Basic進行錄制。
  • 在記事本中輸入一段較長的文本A (Type Into活動1),再輸入另一段文本B (Type Into活動2),最小化記事本 (Click活動)。
  • 錄制結束后,把Click活動拖到兩個Type Into活動之間,以測試后台運行。
  • 在Type Info活動2里,手動添加一個熱鍵Enter (點擊右下角的下拉箭頭選擇熱鍵),添加后顯示為"[k(enter)]文本B"。

運行結果:

  • Default:文本A(換行)文本B
    速度較慢;最小化窗口之后又還原窗口,再輸入文本B; 識別了[k(enter)]。
  • WindowMessages:文本a(換行)文本b
    速度最慢;最小化窗口后在后台輸入文本B;識別了[k(enter)];大寫字母都變成了小寫
  • Simulate:[k(enter)]文本B
    速度最快;最小化窗口后再后台輸入文本B;不能識別[k(enter)];雖然沒有勾選Empty Filed選項,但是文本A在輸入文本B時被清空了。
    解決方法:在第二個Type Info活動前添加Get Text活動提取文本A,再把文本B附在文本A的后面輸入。

建議:每一種Input方法都試一下。先使用Default方法,因為它是一定可以運行的。之后再嘗試使用SimulateWindowMessages方法來提高運行速度或者實現在后台工作。


 

2. Output方法:Screen Scraping

上一課用到的Get Text活動僅適合抓取簡單短小的文本。而Screen Scraping可以抓取更大塊的、存在於復雜元素中的文本。Screen Scraping還可以獲取文本的位置、顏色等信息。

使用Screen Scraping工具抓取信息時可以嘗試下面三種方法:

 Output方法  運行速度  准確度  支持后台工作 獲取文本位置 獲取隱藏文本 兼容Citrix
FullText
很快 100% X X
Native 較快 100% X X X
OCR 很慢 98% X X

 

 

 

 

  1) FullText是默認方法,大多數情況下也有是有效的方法。

  2) Native的優勢是可以獲取文字的其他信息,比如某個單詞或字母在屏幕上的坐標。

  3) OCR不能達到100%的准確度,但當另外兩種方法不起作用時,OCR就是最后手段。

  *只有OCR可以在Citrix或者虛擬環境下運行。OCR也可以獲取文字位置。

 

怎樣使用Screen Scraping:

  1) 點擊Design Ribbon中的Screen Scraping按鈕,會出現選取界面。

   

 

  2) 點擊以選擇想要提取的信息,可以選擇包含多個元素的區域。

  

 

  3) 選取完會彈出Screen Scraper Wizard窗口。點擊UI ElementRegion可以更改提取信息的區域。

  這里UiPath自動選擇了Native方法,可以在Options面板中更改為其它兩種方法。

  

  從預覽面板中可以看出,Native方法只抓取了可編輯區域中的文本。

 

  4) 切換為Full Text方法后,預覽面板中的信息發生了變化。

  Full Text方法不但抓取了可編輯區域的文本,還抓取了不可編輯區域的文本和隱藏在下拉列表中的文本。

  

  *在Options面板中勾選Ignore Hidden選項,再點Re-scrape按鈕可以忽略隱藏的文本。

  

 

  5) OCR方法則更為不同,它把選擇的區域看作圖片來讀取其中的文字。

  由於會出現錯別字,OCR方法僅適用於數據不需要完全正確的情況。

  

  UiPath提供了兩個OCR的引擎。MS Office OCR適用於較大的圖片,比如掃描的文檔。

   

  Google OCR更適合讀取較小的、分辨率較低的圖片,比如界面上的元素。

  

  Options面板中Invert選項專門針對一些黑底白字的圖片。Scale選項則可以放大圖片以得到更好的結果。

  我們可以逐個嘗試這些選項,看看預覽面板的結果有什么變化,找到最佳組合方式。

 

   6) 設置完點擊右下角的Continue按鈕,會得到一個Screen Scraping的Sequence。

  

  

  Selector表示要抓取文本的元素或區域,當多個活動的元素或區域相同時,可以將Selector里的內容直接復制到其他活動中而不必重新選擇元素或區域。Text的變量用來保存抓取到的文本。

  如果想試試另一種OCR,可以把Google OCR活動刪除,再把MS Office OCR活動拖進來。推薦把Scale屬性改成3,因為MS Office OCR更適合讀取較大的圖片。

 

*如果不使用Screen Scraping,也可以手動添加活動。

Output方法 手動添加
Basic Recording Get Text
Full Text Get Full Text
Native Get Visible Text
OCR Get OCR Text

 

 

 

 

 

 

 

*Get Text活動在上例中只能抓取"Address"一個單詞。 


 

3. Data Scraping

Screen Scraping用來抓取Freeform Data (自由形式的數據)。而Data Scraping用來抓取Structured Data (結構化數據)

Structured Data是什么?
當你在Google搜索某個關鍵詞時,你得到的搜索結果是由很多塊相同格式的數據構成的,每一塊都由三部分構成:標題、URL和描述。這樣的數據就是Structured Data

 

怎樣使用Data Scraping:

以亞馬遜的圖書搜索頁面為例,該頁面上的數據也是Structured Data,但是比Google的搜索結果頁面更為復雜。

 

  1) 點擊Design Ribbon中的Web Scraping按鈕,會出現向導窗口,點擊Next就可以開始選取第一個元素了。

  

  

  

  2) 點擊第一本書的標題,會再次彈出向導窗口。點擊Next繼續。

  

  

 

  3) 點擊第二本書的標題,再次彈出向導窗口。圖書的標題也是鏈接,因此向導窗口可以選擇提取文本或URL。

  

  這里兩個選項都勾選上,分別命名為Title和URL。點擊Next按鈕,彈出向導的預覽界面。

  

  

  4) 除了提供預覽的數據,網頁上的相應位置被標出來方便查看。接着提取“作者”和“價格”,點擊Extract Correlated Data按鈕。

  

  

  5) 向導重新回到選擇第一個元素時的界面,重復上面的步驟提取“作者”和“價格”信息。點擊Finish按鈕。

  6) UiPath會詢問我們數據是否跨頁。將網頁下拉到選擇頁碼的地方,選擇Yes,然后選擇網頁上的Next Page元素。

  

  

 

  7) 向導結束后將得到一個名為Web Scraping的Sequence,並且得到一個DataTable類型的Output變量。

      添加一個Write CSV活動,將抓取的數據保存在一個CSV文件里。

  8) 這個CSV文件里有100條記錄,但搜索結果遠超100條。這是因為UiPath默認只抓取100條記錄,可以在屬性面板里更改設置。

  

 

用Web Scraping抓取網頁上的表格 (HTML Table) 是,當點擊表格里的任意一個單元格會彈出Extract Table提示窗口

如果選擇Yes,就可以直接抓出整個表格的數據,而不需要選擇第二個元素。如果選擇No,則需要重復之前的步驟選擇第二個元素。


  

4. 練習:

1) 提取鏈接頁面的100條記錄,包括名稱和價格,將數據存儲到一個新建的Excel表格中。

*第一次選取該頁的第一個名稱, 第二次選取該頁的最后一個名稱。相比於第二次選取第二個名稱,這樣更有可能生成一個一致的標識符 (a consistent identifier)。

2) 不適用Recording功能完成一下操作:在記事本中打開字體對話框,將字體改為Arial,樣式改為斜體,增大5個字號,並選擇一個新的腳本 (Script)。

  • 打開記事本,添加一個Attach Window活動
  • 在Attach Window活動的Do里添加一個Click活動。點擊藍字Indicate element inside window指定元素,接着點擊記事本的格式菜單 (Format) 按鈕。
  • 在第一個Attach Window活動之后再添加一個Attach Window活動按下F2暫停並打開格式菜單,暫停結束后點擊彈出的格式菜單。
    • 因為UiPath會把格式菜單當作一個新的窗口,所以需要添加一個新的Attach Window活動。
  • 在第二個Attach Window活動的Do里添加一個Click活動,點擊格式菜單里的字體 (Font) 按鈕。
  • 為彈出的字體對話框添加一個新的Attach Window活動
  • 在第三個Attach Window活動的Do里添加一個Type Into活動,指定元素並點擊字體的輸入框,輸入Arial。
  • 再添加一個Type Into活動,指定元素並點擊字體樣式的輸入框,輸入Italic。
  • 添加一個Get Text活動,指定元素並點擊字號的輸入框。新建一個Int32型的變量fontSize,將它設置為Get Text活動的Output。
  • 添加一個Type Into活動,指定元素並點擊字號的輸入框,輸入(fontSize+5).ToString
  • 添加一個Select Item活動,指定Script的下拉菜單為Target的Selector參數,輸入Greek作為Input的Item參數

注意:

  • F2暫停並不是只能在Recording的時候用,在選取元素的時候都可以使用。
  • 如果用Ctrl+L創建的變量提示類型錯誤,可以嘗試在變量面板重新創建。

 

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

  • Get Full Text
  • Get Visible Text
  • Get OCR Text
  • Google OCR
  • MS Office OCR
  • Write CSV 
  • Write Range:將DataTable數據寫入一個Excel表格。
  • Click
  • Select Item:選擇下拉菜單可以用這個活動。
  • Environment.Newline:添加新行。例如:"Get Full Text: " + textGFT + Environment.Newline + "Get Visible Text: " + textGVT

 


免責聲明!

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



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