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
750
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
800
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
株式会社WePush 採用候補者様向け会社説明資料
wepush
1
980
47グループ 会社紹介資料 / Company Introduction
47holdings
1
21k
負債解消という仕事は儲かる
uproad3
6
3.9k
enechain company deck
enechain
PRO
10
190k
株式会社L is B 会社紹介 / LisB Corp. Introduction 20260814
lisbcorp
PRO
0
180
なぜ勉強会だけでは浸透しないのか ~数百人規模の組織でコーディングエージェントを当たり前にした戦略とその結果~
sigma_sig
0
210
セーフィー株式会社(Safie Inc.) 会社紹介資料
safie_recruit
7
460k
「プロダクトエンジニア」とは ~ 名づけの価値と、言葉が動かす力 ~
mkitahara01985
0
240
LTV, 실무에서는 이렇게 씁니다
datarian
0
780
<DevLOVE関西>関係性が育つ前にフィードバックを届ける ~関係性が育つのを待てないとき、どう渡すのか~
emi0726
4
210
「ユーザー価値か、事業成果か?」 そんな意思決定で悩む前に PMがやるべきこと
inagakikay
3
1k
AIネイティブ時代における 開発組織の役割と拡張の可能性
recruitengineers
PRO
2
370
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.2k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How to Ace a Technical Interview
jacobian
281
24k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
The agentic SEO stack - context over prompts
schlessera
0
860
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
340
Everyday Curiosity
cassininazir
0
280
Making Projects Easy
brettharned
120
6.7k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
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)で確認 まとめ