捕捉控件
1. 什么是控件?
控件是RPA機器人模擬人進行界面自動化操作的基礎(chǔ)對象,代表其在執(zhí)行一個應(yīng)用(流程)時可能涉及的各類“界面元素”,如一個網(wǎng)頁中的輸入框、“百度一下”按鈕、頁面標(biāo)題、客戶端上的登錄按鈕等,都可以被視作一個控件。
在您RPA開發(fā)者-快速入門時,需要在捕捉到流程中需要操作的控件的基礎(chǔ)上,才能完成流程的開發(fā)。如您希望RPA機器人去自動關(guān)閉一個桌面窗口,您需要先捕捉到這個窗口,以及窗口右上角的關(guān)閉按鈕這兩個控件,再在點擊控件(窗口)這個組件中分別選擇這兩個控件,實現(xiàn)對該窗口的關(guān)閉。因此,學(xué)會捕捉控件是您進行RPA應(yīng)用開發(fā)的必經(jīng)之路。
在下文中,我們將分別向您介紹如何捕捉控件(第2節(jié)),如何編輯所捕捉控件的屬性(第3節(jié)),以及當(dāng)您遇到了一批相似控件時,如何快速地進行相似控件捕捉(第4節(jié))。
2. 捕捉控件
RPA編輯器支持您基于匹配(自動匹配/win32-UIA等),或基于圖像錄制的模式來進行控件的捕捉。考慮到匹配的準(zhǔn)確性與效率,我們一般推薦您使用基于自動匹配的模式,若您希望捕捉的控件或其所在的界面無法被該模式識別,您也可以通過圖像錄制的模式,來截取目標(biāo)操作區(qū)域,RPA會通過圖像識別的方式對其進行匹配。
2.1. 自動匹配模式/win32-UIA模式/win32-MSAA模式
打開RPA編輯器,以編碼模式為例,在右側(cè)控件面板中點擊
開始捕捉
。界面彈出對話框
打開您希望捕捉的控件所在的界面,并確保對話框在該界面上方,點擊
捕捉控件
按鈕(或按鍵盤F2
鍵)將鼠標(biāo)移動到需捕捉的控件上,待藍(lán)框鎖定目標(biāo)控件,點擊鼠標(biāo)左鍵即可完成捕捉。在捕捉控件窗口中:
您可以在下圖中序號①內(nèi)看到您所捕捉控件的預(yù)覽,在控件預(yù)覽區(qū)域中移動鼠標(biāo),可以在右上角查看鼠標(biāo)相對該控件中心點的位置,用以在某些場景中設(shè)定偏移量
您還可以在下圖中序號②內(nèi)選擇一個針對該控件的驗證動作,并在序號③中配置該動作所需的參數(shù)
點擊序號④中的
驗證動作
按鈕,即可在界面中查看您針對該控件的驗證是否滿足預(yù)期,如果您選擇的驗證動作有返回值,會顯示在序號⑤中若您驗證成功,請?zhí)顚懣丶Q,為該控件選擇分組(非必要),并點擊保存
后續(xù)您可以在編輯器的控件面板中查看,也可在流程開發(fā)過程中直接在控件列表中選擇該控件
2.2. 圖像錄制模式
圖像錄制模式主要用于上述模式對目標(biāo)界面解析失敗的情況(無法捕捉目標(biāo)控件)。
若您使用基于圖像錄制的模式:
在點擊
捕捉控件
按鈕前,在右側(cè)模式列表中下拉選擇圖像錄制模式
點擊
捕捉控件
,對您希望操作的區(qū)域進行截圖,鼠標(biāo)釋放即為完成截取。在捕捉控件窗口中:選擇
編輯控件
(在下圖中序號①),查看您截取的目標(biāo)區(qū)域,在定位圖像(在下圖中序號②)中可以通過拖動錨點的方式來調(diào)整在目標(biāo)區(qū)域中操作的具體位置選擇
驗證控件
按鈕(在下圖中序號③),選擇一個針對該控件的驗證動作,并再配置該動作所需的參數(shù)點擊
驗證動作
按鈕(在下圖中序號④),即可在界面中查看您針對該目標(biāo)區(qū)域的驗證是否滿足預(yù)期若您驗證成功,請?zhí)顚懣丶Q,為該控件選擇分組(非必要),并點擊保存
后續(xù)您可以在編輯器的控件面板中查看,也可在流程開發(fā)過程中直接在控件列表中選擇該控件。
3. 編輯控件
在實際開發(fā)的過程中,可能會出現(xiàn)某個上次捕捉且可正常使用的控件,在再次使用時報錯的情況。這可能是由于上次捕捉時控件所在的界面發(fā)生了改動;也可能是由于上次捕捉的控件中有屬性發(fā)生變化。針對前者,我們可以在變化后的界面中重新進行捕捉;針對后者,可以通過編輯控件屬性的方式來重新保證控件選擇的準(zhǔn)確性。
在本節(jié),會向您介紹如何通過編輯控件來準(zhǔn)確捕捉“屬性會發(fā)生變化”的控件。
編輯控件的原則:從最下面一層開始編輯,修改一次屬性通過高亮
按鈕或者快捷鍵F5
來驗證修改過后的控件。
比如:捕捉巨潮網(wǎng)中格力電器的股票價格信息,由于股票價格變化,該控件屬性可能存在變化,所以需要通過編輯控件,設(shè)置固定的控件屬性來保證控件的穩(wěn)定性。
修改最后一層的信息,取消outertext屬性,勾選class屬性或者nth-child屬性,回顯驗證是否捕捉到該控件。
若outertext屬性中的值是部分變化,也可以選擇該屬性,修改匹配規(guī)則(相等/包含/正則),然后屬性值根據(jù)匹配規(guī)則進行修改。比如:匹配規(guī)則為“包含”,則屬性值為固定不變的關(guān)鍵字;若規(guī)則為“正則”,則屬性值為正則表達(dá)式。
4. 捕捉相似控件
當(dāng)您希望在界面中捕捉的控件是一批特征相似的控件時(如下圖中紅色框選區(qū)域,每個區(qū)域內(nèi)的元素都可以被視作一批相似控件),您可以通過捕捉相似控件
的方式,一次性地捕捉多個指定的相似控件。
例如,捕捉上圖左側(cè)分類的全部標(biāo)簽(女裝、內(nèi)衣、奢品等);
首先點擊捕捉控件按鈕,捕捉“女裝”這個控件
點擊
捕捉相似控件
按鈕,捕捉這批控件中的第二個控件,如“內(nèi)衣”。點擊左鍵完成本次捕捉后,屏幕中會同時高亮多個控件,隨后,窗口中顯示共找到“40個”控件(如下圖中所示)
根據(jù)剛才的高亮結(jié)果,以及統(tǒng)計出的相似控件數(shù)量可以發(fā)現(xiàn),系統(tǒng)默認(rèn)捕捉的這一批相似控件并不是我們想要的,因此,我們需要通過
編輯控件
的方式對剛捕捉到的這一批相似控件進行調(diào)整,點擊下圖中的編輯控件
。從最下面一層標(biāo)簽開始,編輯右側(cè)屬性(勾選/取消),點擊
高亮控件
按鈕,測試能否準(zhǔn)確回顯該批相似控件;如果為否,繼續(xù)編輯上一層屬性,測試該批相似控件能否成功被高亮,重復(fù)類似操作,直至捕捉到我們想要的相似控件。
如下圖中所示,在本次調(diào)整后,點擊高亮控件,屏幕中高亮區(qū)域正確,同時提示共找到24個控件,相似控件數(shù)量也正確,即可填入控件名稱,選擇該控件所屬分組(如需),點擊保存。
在后續(xù)流程搭建的過程中:
如需使用這一批相似控件,請結(jié)合循環(huán)相似控件(網(wǎng)頁)、循環(huán)相似控件(窗口)等組件共同使用
如需使用這一批相似控件中的某一個控件,請在各組件的高級選項-控件索引中明確具體的控件
更多案例,請參考視頻:編輯屬性捕捉相似控件
捕捉相似控件相當(dāng)于將多個控件納入一個控件組進行管理,同時通過“控件索引”來區(qū)分控件。比如選擇動作“獲取文本”,若控件索引為1,則獲取的是第一個標(biāo)題,若控件索引為2,則獲取的是第二個標(biāo)題,以此類推)
樣例:捕捉控件
1.打開百度頁面,使用捕捉控件,點擊捕捉控件
按鈕,將鼠標(biāo)移動到百度輸入框中進行捕捉;
2.在編輯控件窗口中,輸入控件名稱(在下圖中序號①),然后進行驗證:
選擇動作(在下圖中序號②),本次選擇輸入文本,測試能否正常向百度輸入框輸入文本;
接著在動作參數(shù)中,填入輸入內(nèi)容(測試)(在下圖中序號③);
然后點擊
驗證動作
按鈕(在下圖中序號④),發(fā)現(xiàn)文本輸入成功,同時驗證結(jié)果顯示驗證成功(在下圖中序號⑤);以上步驟證明了捕捉到的控件可正常使用,點擊保存(在下圖中序號⑥)。
3.同理可捕捉“百度一下”按鈕,在驗證的時候,選擇動作為“點擊”,驗證成功后保存控件。
樣例:捕捉相似控件
假設(shè)需要捕捉所有阿里云搜索結(jié)果的標(biāo)題,這里我們需要用到捕捉相似控件功能。
使用捕捉相似控件,需要在頁面中先找到具有相似性的控件,以圖中標(biāo)題為例,并不是所有標(biāo)題都是相似控件,例如下圖中第一個標(biāo)題與頁面中其他標(biāo)題就不是相似控件,當(dāng)使用捕捉相似控件捕捉第一個標(biāo)題時,會提示“合并失敗,提供的選擇器不具備相似性“,是由于標(biāo)題一與標(biāo)題二三的底層源碼結(jié)構(gòu)不同導(dǎo)致的。
在搜索結(jié)果中,隨意捕捉一個標(biāo)題(比如此處捕捉圖中序號①標(biāo)題),進入控件編輯頁面;
然后點擊捕捉相似控件按鈕,此時頁面又會回到捕捉控件的狀態(tài),此時再捕捉一個類似的控件(比如此處捕捉圖中序號②標(biāo)題);
捕捉完成后,會自動再次回到控件編輯窗口,此時點擊高亮控件按鈕,會發(fā)現(xiàn)頁面上的10個標(biāo)題全部高亮;
至此,已經(jīng)成功捕捉到頁面標(biāo)題控件,將控件命名并保存。
通過OCR的方式操作控件
一般來說,在兩種場景下,我們會通過OCR(光學(xué)字符識別)的方式來定位控件中的目標(biāo)操作位置:
目標(biāo)操作區(qū)域無法捕捉,只能捕捉到上一級控件,且在上一級控件中可以通過文字匹配的方式確定目標(biāo)位置
目標(biāo)操作區(qū)域經(jīng)常變化,但是上一級控件不變,可以通過捕捉到上一級控件,再通過文字匹配的方式確定應(yīng)用實際執(zhí)行時要點擊的位置(如某軟件下拉列表結(jié)構(gòu)容易調(diào)整,每一項的位置無法確定,因此可以先捕捉到整個列表,再通過OCR的方式進行文字匹配,以確定應(yīng)用執(zhí)行時具體要點擊的下拉項)
樣例:通過OCR識別控件區(qū)域內(nèi)的關(guān)鍵詞進行驗證點擊動作:
打開百度頁面,使用捕捉控件,點擊
捕捉控件
按鈕,將鼠標(biāo)移動到百度首頁的菜單欄的外層進行捕捉,然后通過OCR識別菜單欄中地圖的位置進行點擊。在編輯控件窗口中,輸入控件名稱,然后進行驗證:
選擇動作,本次選擇OCR-點擊,測試能否識別控件中關(guān)鍵詞,并點擊關(guān)鍵詞的位置;
在動作參數(shù)中,填寫關(guān)鍵詞內(nèi)容(地圖),以及選擇OCR引擎為google;
重要OCR引擎默認(rèn)使用Google,但是Google引擎對中文的識別能力較弱,實際使用時請注意。可以點擊編輯控件窗口中的查看OCR結(jié)果按鈕(或F8快捷鍵)進行驗證識別的結(jié)果,識別結(jié)果可能會有偏差,只需要保障識別的結(jié)果與設(shè)置的關(guān)鍵詞能匹配上即可。
然后點擊
驗證動作
按鈕,發(fā)現(xiàn)鼠標(biāo)移動到標(biāo)題為地圖的位置上并點擊,同時驗證結(jié)果顯示驗證成功;至此,已經(jīng)成功捕捉到頁面指定元素控件,將控件命名并保存。