今天遇到了一個小案例:有多個作業(yè)對象,數(shù)量不確定倡勇,每個作業(yè)對象執(zhí)行前會彈出確認(rèn)對話框逞刷,需要使用UiPath實(shí)現(xiàn)自動化點(diǎn)擊OK按鈕進(jìn)行作業(yè),每個作業(yè)幾秒~二十秒不等妻熊,作業(yè)完成后會彈出下個作業(yè)的確認(rèn)對話框夸浅,需要再次自動化點(diǎn)擊OK按鈕,以此類推扔役,所有作業(yè)完成后會彈出執(zhí)行成功的對話框帆喇。
一開始我的實(shí)現(xiàn)方法:使用Element Exists對每次彈出的對話框進(jìn)行存在判斷(設(shè)置Timeout屬性為默認(rèn)30s),對象確認(rèn)對話框存在時自動點(diǎn)擊OK按鈕亿胸,循環(huán)進(jìn)行下一輪存在判斷坯钦,直到如果30秒還沒找到,就去尋找執(zhí)行成功的對話框侈玄,找到了就證明作業(yè)執(zhí)行成功婉刀,如果沒找到就證明程序異常。
這樣的處理方式序仙,就意味著最后一個作業(yè)對象執(zhí)行完成后突颊,即使執(zhí)行成功對話框已經(jīng)彈出,還要等待30s才能結(jié)束程序潘悼,比較浪費(fèi)時間律秃,而且感覺很low。
后來治唤,我發(fā)現(xiàn)了Pick 和 Pick Branch這一對好兄弟棒动,小問題迎刃而解。示例如圖:
同樣是while循環(huán)不變肝劲,使用Pick活動迁客,拖入2個Pick Branch活動,在Pick Branch活動的Trigger中判斷對話框是否存在辞槐。程序執(zhí)行到Pick活動時掷漱,會同時執(zhí)行各個Trigger,當(dāng)某個Trigger滿足條件時榄檬,就會執(zhí)行當(dāng)前Pick Branch對應(yīng)的操作卜范,其他Pick Branch對應(yīng)的操作則不會被執(zhí)行。
這樣程序執(zhí)行時鹿榜,就會同時判斷畫面上出現(xiàn)的是對象確認(rèn)對話框還是執(zhí)行成功對話框海雪,如果是對象確認(rèn)對話框锦爵,則點(diǎn)擊OK按鈕,進(jìn)行下一輪判斷奥裸。如果是程序執(zhí)行完成對話框险掀,則程序執(zhí)行完成,結(jié)束循環(huán)湾宙,不需要額外的等待時間樟氢。
是不是很實(shí)用呀,有更好的方法歡迎一起交流討論~
小竅門:如果Pick活動中的每個Pick Branch的Trigger都不滿足怎么辦侠鳄?-->可以再追加一個Pick Branch埠啃,在Trigger中拖入Delay活動,設(shè)定相應(yīng)時間伟恶,該時間間隔后如果其他Trigger還是不滿足碴开,則會執(zhí)行該P(yáng)ick Branch中對應(yīng)的操作。