UiPathでワークフローを組む場合、まずレコーディングでPC操作をアクティビティに落とし込み、
それをベースに変数/ループ/分岐などを入れながら仕上げてゆくのが基本なので、
とっかかりとなるレコーディングを使いこなせれば効率的にワークフローを組んでいけます。
「レコーディングをやってみよう」的なチュートリアルは色んな方が書かれているので、
ここではレコーディングの実践中に自分が詰まったポイントと対策を、
"自分がわからない=皆もわからないはず"という勝手な理屈でQ&A形式でリストアップしてみます。
※思い出した都度、少しずつ追記していきます。
Question | Answer | Comment |
---|---|---|
どのレコーディング機能を使えばいいの? | 使い分けをフローチャートで描きましたので見て下さい | 後述の記事参照 |
右クリックが記録できない・・・ | F2(一時停止機能)を活用 | 類件:レコーディング中にスクロールバーが動かせない |
ナントカAnchorダイアログがウザい | 基本Noでいいです | Do you want to use an Anchor? |
で、結局どのレコーディング機能を使えばいいの?
UiPathでは①Basic/②Desktop/③Web/④Citrixの4つのレコーディングモードがあり、
毎回どれを使うべきか悩むので、↓のようにフローチャートにしてみました。
③Webレコーディング
コレが一番わかりやすい。ブラウザでのWeb操作ならWebレコーディング。
図中の"(※)"で記したHTMLベースというのは、簡単に言うと
ブラウザ上で右クリック→"ソースの表示"で裏のHTMLタグが見えるものを指します。
大抵のWebはこの類ですが、世の中にはそうじゃないFlashやJava appletで組まれた
妙なWebシステムもあり、その場合もWebレコーディングは継続できますが、
裏ではDesktopレコーディングが実行されます。
①Basicレコーディング vs ②Desktopレコーディング
これはさすがにわかりにくいのか、公式のナレッジベースでも違いが解説されてます。
レコーディングの結果としてBasicでは1つ1つのアクティビティが完全セレクターで実装され、
一方Desktopではコンテナ(Window Scope)+部分セレクターで実装され、
みたいな話がありますが、イメージは↓のような感じです。
これだとBasicレコーディングに良いとこ無いように見えますが、
自分の経験として、Desktopで生成したワークフローだと操作に失敗したのに、
Basicのワークフローだと操作できた例がある(逆パターンもありますが)ので、
Basicモードを活用する機会はあります。
もはやレコーディングでも何でもない④Citrixモード
レコーディングボタンが無いじゃん。
このモードは「Click ImageやClick OCR Textアクティビティをウィザード形式で実装できるよ」的な
お便利機能だと思ってます。
ちなみにUiPath AcademyではVDIやRemote Desktop先のPCを操作する時に使うとありますが、
画像認識やショートカットキーでしか操作できないような使い方をするくらいなら、
素直にVDI先のマシンにUiPath入れちゃった方が良いと思います。
図中の"違うやり方を考える"というのはそういう意味です。
右クリックが記録できない・・・
公式でも右クリックやショートカットキーはレコーディング不可と説明があります。
アプリケーションの右クリックメニューを操作するシナリオをレコーディングしたくても、
レコーディング中に右クリックすると即レコーディングが終わってしまいます。
ここで使うのが**"F2"ボタン**です。
レコーディング中(正確に言うとIndicate on screen、対象が青枠で選択されるモード中)に
F2ボタンを押すと、3秒だけレコーディングが一時停止され自由に操作できます。
(一時停止中は画面右下に3→2→1→0とカウントダウン表示されます)
さっきのシナリオをレコーディングするには、
①左クリック(※後で右クリックに手動で変更)
→ ②F2で一時停止
→ ③一時停止中に右クリックしてメニューを出しておく
→ ④3秒後にレコーディングに戻ったらメニューを操作
で一旦ワークフローに落とした後、
①のClickアクティビティのプロパティをBTN_LEFT → BTN_RIGHTに変更すれば完成です。
F2による一時停止はレコーディングで必須のテクニックなのでぜひ覚えましょう。
似たような案件で、レコーディング中は
「押したいボタンが下のページに隠れてるのに、Page Downキーや縦スクロールバーが動かせない」
「マウスオーバーで出てくるサブメニューやバルーンを出したいけど出てこない」
などありますが、これらもF2を使えばなんとかなります。
あとここまで書いといてなんですが、
F2はレコーディングの一時停止というよりはIndicate on screenの一時停止なので、
Attach to live elementやUi Explorerでの選択時など汎用的に使えます。
途中で出てくるナントカAnchorダイアログがウザい
自動的に生成されるSelectorの信頼性が低いので、別の信頼できるSelectorのオブジェクトを
Anchor(よりどころ)として、そこからの相対位置で操作しろ、という話。
ただ、基本はNoで良いです。理由は2つあって、
①Indicate Anchorを選んでもAnchorを指定できないケースが多い(↓のエラーが発生)
②Anchorを指定しなくても成功する事が多い、又はSelectorの工夫でなんとかなる
これに尽きます。
Indicate Anchorができたとして、↓のようにAnchor Baseを使った大掛かりな仕掛けになるので
単独アクティビティでSelectorを工夫した方が保守性も良いと思います。
今回はここまで。
前回の投稿から日が経ってしまいましたが、Minecraft始めたらそればっかりやっちゃって
家でUiPath触る時間が無くなってしまったという情けないオチです。
それではいかんので、レコーディングネタを思いついた都度、記事の内容を追記していきます。