Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UiPath勉強会_コアなSelector説明
Search
一戸寿哉
December 20, 2017
Business
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
UiPath勉強会_コアなSelector説明
一戸寿哉
December 20, 2017
More Decks by 一戸寿哉
See All by 一戸寿哉
仙台・青森支部~地域課題と向き合うRPA~
k_dash_riese
0
770
ガバナンスって知ってますか?
k_dash_riese
0
740
01_RPALT青森_青森支部について_20200309_01.pdf
k_dash_riese
0
600
02_RPALT青森_RPA初心者セミナー_20200309_02.pdf
k_dash_riese
0
690
地方課題と向き合う(株式会社リアルインベント:村岡さん)
k_dash_riese
0
790
01_RPALT仙台_仙台支部_20200204_02.pdf
k_dash_riese
0
490
02_RPALT仙台_RPA初心者セミナー1_RPAとは_20200204_01.pdf
k_dash_riese
0
550
03_RPALT仙台_RPA初心者セミナー3_RPAツール紹介_20200204_01_.pdf
k_dash_riese
0
580
RPAの利用状況、エラー分析
k_dash_riese
0
810
Other Decks in Business
See All in Business
28卒_新卒営業職 会社説明資料
divarecruiting
0
140
yomiyomi company deck
yomiyomi
0
970
SimpleForm 会社紹介資料
simpleform
2
56k
Copilotで資料を作るようになって仕事のやり方が変わった話
aonomasahiro
2
700
2026.7_中途採用資料.pdf
superstudio
PRO
5
120k
登壇テーマの候補をAIで掘り起こす / Generate CfP Ideas via-AI
tbpgr
1
230
Fable5との実践から生まれた非エンジニア組織のループエンジニアリング
nagatsu
0
700
株式会社アフェクター会社説明資料(中途/技術職向け)
affectorsaiyo
0
300
新規事業立ち上げにPMMが果たすべき役割と責任 −スケールアップ企業における"プロダクトマーケティング"の可能性
yushimad
1
370
株式会社アイリッジ 会社説明資料
iridge
0
6.9k
株式会社ショーエイ_採用説明資料
shoeidex
0
250
株式会社ルクレ新卒向け採用ピッチ
lecre
0
850
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
870
Are puppies a ranking factor?
jonoalderson
1
3.7k
Color Theory Basics | Prateek | Gurzu
gurzu
0
390
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
Done Done
chrislema
186
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
エンジニアに許された特別な時間の終わり
watany
107
250k
Thoughts on Productivity
jonyablonski
76
5.2k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
260
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Transcript
UiPath勉強会 セレクター編 (第3回RPAセミナー) -RPAコンサルタントグループ- 2017/12/20 Kazuya Ichinohe コアなSelector説明
▪自己紹介 ▪名前 一戸 寿哉(いちのへ かずや) ▪年齢 ほぼ34歳 ▪経歴 2006/4~ 大手メーカーの子会社SIer
2017/3~ 某外資系コンサルティングファーム →UiPath歴 9ヶ月 ▪趣味 バスケ、カラオケ(アニソン中心)
▪前置き v2016.2.6274 ベースでお話しします。
セレクターって、具体的に何?
ここに文字を入力したい
Clickすると Type into を 使う
マウスポインタを合わせると 画像やボタン等が認識される
マウスポインタを合わせると 画像やボタン等が認識される
左クリックで決定
画像が設定される この画像で場所を特定 している訳ではない 場所が特定できた
Type intoアクティビティの プロパティを開いてみる Target > Selector …をClick
エレメント抽出に用いる属性項目の指定 エレメント抽出に用いる属性項目を追加編集することも可能 ▪Selector Editor(復習) エレメント選択が必要なActivityにおいては、Selectorプロパティをクリックするこ とで、下記のようなSelector Editorが起動されます。こちらで、エレメント特定 に利用するキー項目を選択、追加することが可能です。 Type intoや
Clickなど
IEでF12を押すと
画像などを特定する情報 が表示される(HTML) セレクターはこれと 似たような考え方のもの。 Elementを特定するための情報。
このセレクターで特定の場所 (Element)を認識している
さて、
なぜ、セレクターがテーマに? なぜ、みんな気にする?
セレクター周りはエラーが多い 。・゚・(ノД`)・゚・。
なぜエラーが多い?
気をつけるポイントが多い
▪Tips(復習) SelectorでUI element(オブジェクト)がうまく 特定できない 例えば、前回こんなTipsがありました その対応方法は、
▪対応方法 Selectorを利用する上でのbest practice一覧は以下です。 - selectorの要素(attributes)は安定的かつ該当業務上で意味のある値にしてください ※人が該当システムを操作する際に、オペレーションの判断に使う項目をattributesに定義します - 変動する値には以下のワイルドカードを利用してください ※例参照 "*":
ゼロ文字から複数文字を表す "?": 1文字を表す - ある要素の値がすべてワイルドカード(たとえば、name=*)の場合、その要素はseletorとしての役割を果たさな いので削除してください(ただし、削除しなくても動作上問題はありません) - 要素の編集で改善が見られない場合、中間containers(中間elements)を追加してください - idxは画面の変更によって変動する可能性が非常に高いため、極力利用を避けてください (手順) ファイル名が動的に変化するNotePadファイルをロボに処理させる場合の一例です。 1. NotePadを開きます 2. RecorderでSelectorを生成します 3. 任意のファイル名のNotePadを開きます 4. Selector Editorの「Attach to Live Element」を押下します 5. ファイル名がワイルドカードに置き換わります ワイルドカード利用前後のSelectorの変化は以下です。 利用前:<wnd app='notepad.exe' cls='Notepad' title='United - Notepad'/> 利用後:<wnd app='notepad.exe' cls='Notepad' title='* - Notepad'/>
( ゚д゚)ポカーン
気をつけるポイントが多い のに、具体的な説明・対策が 少ない! というのが現状
そこで、
エラー対処法を なるべく具体的に紹介
Type intoのセレクター <html title=‘施設予約システム’ /> <webctrl idx=‘1000’ tag='INPUT' /> エラー例
問題なかった画面がある日突然、セレクターエラーに
ちなみに、↑がいわゆるセレクターのエラーです。 SelectorNotFoundException #よく見ることになるでしょう…
エラーが起きたら、どうする?
調べる
どうやって?
UiExplorer を使う
UiExplorer ここ
Click UiExplorer
問題の箇所(セレクタで取れなかった場所)を指定する UiExplorer
指定した Elementの セレクターが 取れる UiExplorer
エラーになったセレクターと 比べてみる
Type intoのセレクター <html title=‘施設予約システム’ /> <webctrl idx=‘1000’ tag='INPUT' /> UiExplorerで取れたセレクター
<html title=‘施設予約システム’ /> <webctrl idx=‘1001’ tag='INPUT' /> 微妙に変わってる! エラー例 問題なかった画面がある日突然、セレクターエラーに
Type intoのセレクター <html title=‘施設予約システム’ /> <webctrl idx=‘1000’ tag='INPUT' /> 対処①
idxを合わせる(非推奨) UiExplorerで取れたセレクター <html title=‘施設予約システム’ /> <webctrl idx=‘1001’ tag='INPUT' /> 現状のidxに合わせる(0⇒1)
セレクタの修正 手入力で 1000 ⇒ 1001
▪対応方法 Selectorを利用する上でのbest practice一覧は以下です。 - selectorの要素(attributes)は安定的かつ該当業務上で意味のある値にしてください ※人が該当システムを操作する際に、オペレーションの判断に使う項目をattributesに定義します - 変動する値には以下のワイルドカードを利用してください ※例参照 "*":
ゼロ文字から複数文字を表す "?": 1文字を表す - ある要素の値がすべてワイルドカード(たとえば、name=*)の場合、その要素はseletorとしての役割を果たさな いので削除してください(ただし、削除しなくても動作上問題はありません) - 要素の編集で改善が見られない場合、中間containers(中間elements)を追加してください - idxは画面の変更によって変動する可能性が非常に高いため、極力利用を避けてくだ さい (手順) ファイル名が動的に変化するNotePadファイルをロボに処理させる場合の一例です。 1. NotePadを開きます 2. RecorderでSelectorを生成します 3. 任意のファイル名のNotePadを開きます 4. Selector Editorの「Attach to Live Element」を押下します 5. ファイル名がワイルドカードに置き換わります ワイルドカード利用前後のSelectorの変化は以下です。 利用前:<wnd app='notepad.exe' cls='Notepad' title='United - Notepad'/> 利用後:<wnd app='notepad.exe' cls='Notepad' title='* - Notepad'/> 非推奨の理由
対処② idx以外の値を使う(推奨) idx以外にもセレクタで使える値がたくさんある。 idx のチェックを外して name のチェックを入れる 生成されたセレクターを アクティビティの Selectorプロパティにコピペ
name、aaname等はシステム改定があっても 変わらないことが多い(少なくともidxよりは)
設定したセレクターが ちゃんと効いてるか調べる
Click もうひとつのUiExplorerを起動手順 Selectorプロパティのポップアップから起動できる。
セレクターが正しければ、UiExplorerが起動する。 正しくなければ、起動しない。
UiExplorer上でセレクターを調整後、正しく狙った 場所を設定できているかを確かめる。 Visual Tree の Highlight をクリック
現在のセレクターが指し示す場所がハイライトされる
対処③ ワイルドカードを使う idx以外の値も、変わってしまうことがある。例えばExcel。 Selectorを取ってみると、
name=‘Book1’
その後、別のExcelに同じ処理をしようとしたが、 エラー(SelectorNotFound)となった。 Selectorを取ってみると、
name=‘Book2’ Book までは共通で、 それ以降の数字部分は 無視したい
そんなときは、ワイルドカード Book* と記載することで、Book1でも、Book2でも、Book3でも、 セレクターが認識できるようになる。 Excelを処理するロボットを作ると、たいていこのnameの部分が原因で セレクタエラーになるので、作成時に注意が必要。 nameの良い例) *仕様書.xls A報告書_*.xls
▪対応方法 Selectorを利用する上でのbest practice一覧は以下です。 - selectorの要素(attributes)は安定的かつ該当業務上で意味のある値にしてください ※人が該当システムを操作する際に、オペレーションの判断に使う項目をattributesに定義します - 変動する値には以下のワイルドカードを利用してください ※例参照 "*":
ゼロ文字から複数文字を表す "?": 1文字を表す - ある要素の値がすべてワイルドカード(たとえば、name=*)の場合、その要素はseletorとしての役割を果たさな いので削除してください(ただし、削除しなくても動作上問題はありません) - 要素の編集で改善が見られない場合、中間containers(中間elements)を追加してください - idxは画面の変更によって変動する可能性が非常に高いため、極力利用を避けてください (手順) ファイル名が動的に変化するNotePadファイルをロボに処理させる場合の一例です。 1. NotePadを開きます 2. RecorderでSelectorを生成します 3. 任意のファイル名のNotePadを開きます 4. Selector Editorの「Attach to Live Element」を押下します 5. ファイル名がワイルドカードに置き換わります ワイルドカード利用前後のSelectorの変化は以下です。 利用前:<wnd app='notepad.exe' cls='Notepad' title='United - Notepad'/> 利用後:<wnd app='notepad.exe' cls='Notepad' title='* - Notepad'/> この部分の話でした
対処④ 上級編 変数を使う 下記のような変数を含めたセレクタを、あらかじめ テキストエディタで用意 "<html title='施設予約システム' /><webctrl name='" +
strIDName + "' tag='INPUT' />"
対処④ 上級編 変数を使う …ではなく、テキストボックスを Clickしてセレクタを入力 テキストエディタで用意したセレクタをコピーし、 下記のテキストボックスにペーストする その後、…をクリックすると
Selectorプロパティに変数を設定すると、起動するウィンドウが、 Selector Editor から Expression Editorに変わる 変数設定時 変数設定しない場合 (デフォルト)
変数については難しくなるので 今日はここまで…
・ElementはSelectorで認識される ・エラーが起きたらUiExplorer ・idxは極力使わず、name等を使う ・Selector Editorでチューニング ・Selectorの指定は 固定値・ワイルドカード・変数 がある ⇒Excelはファイル名にワイルドカード name例)
*仕様書.xls A報告書_*.xls ・チューニングしたら、またUiExplorer(Higjlight)で確認 まとめ