【初歩】このセレクターに対応するUI要素が見つかりません

RPAを勉強しはじめたばかりの初心者です。
あるツールにログインする処理を作ったのですが、
実行時にツールが立ち上がってIDを入力するところ
(画像でブレークポイントを入れている「文字を入力」のところ)でタイムアウトし、
表題のエラーが発生してしまいます。

レコーディングにしてみたり普通に処理を書いてみたり、
フォーカスが当たってないのかと考えてウィンドウにアタッチを使用してみたりと
考えつくことはいくつか試してみたのですが状況が変わりません。

初心者がつまづきがちなポイントとのことですが、本当につまづいています…。
よろしくお願いいたします。


ファイル添付を忘れていました。

こんにちは。

ちょっと一点気になっているのですが、「アプリケーションを開く」のDoの中に何も入っていない状態でも
エラーが発生したりしないでしょうか?
(過去にそういうアプリに出くわしたことがありまして、
その場合はちょっとひとひねりしたロジックを組む必要があったので、可能性を先に潰しておきたく。)

それが大丈夫そうであれば、まずは「ウィンドウにアタッチ」は不要なので外して、
アプリケーションを開くのDoの直下に「文字を入力」を配置した後、改めてセレクターを
画面上から指定してみてください。

まだ動かない可能性もあると思いますが、ひとまずここまでお試しいただければ。

コメントありがとうございます。
今アプリケーションを開くの後の処理をすべてコメントアウトして実行しましたが、
その場合はログイン画面が開いて、そのまま正常に処理が終了しました。

現在アプリケーションを開く⇒シーケンス⇒Do⇒文字を入力となっています。
この状態で実行すると、やはり同じ個所でエラーが発生します。

となると純粋にセレクターの問題ですかね・・。
エラーになっている「文字を入力」アクティビティのセレクターエディタのスクリーンショットを
添付することはできるでしょうか?

帰宅中だったので遅くなってしまい、すみません。
自宅からリモートで接続して実行してみました。
エラーメッセージは添付画像の通りです。
宜しくお願いいたします。
スクリーンショット (46)

エラーメッセージではなくセレクターエディタでしたね。
処理全体のスクリーンショットを撮ってみましたが、これのことでよろしいでしょうか。

フルパワーですね・・!こちらは空いた時間に返信する頻度でスミマセン。
セレクターエディターはワークフロー編集中に「文字を入力」の右上にある「三」をクリックすると出てくる
「セレクターを編集」を選ぶと表示されるやつのことです。
↓これ

とりあえず問題になっているアカウントIDの文字入力のところと、
「アプリケーションを開く」のところと二か所見られれば手掛かりになるかなと思いますので、
ひとまずよろしくお願いします。

いえいえ、とんでもないです。
昨日せっかくコメント頂いていたのに宙ぶらりんで放置してしまうのが申し訳なくて、
送るだけ送っておいた次第です。笑
空いた時間の返信でもちろん構いません!

セレクターエディタ、開いたこともありませんでした・・・。
丁寧にありがとうございます。
属性?がたくさんあったので2つに分けてスクショしています。

一度に二枚あげられなかったので、二枚目です。

これはアカウントIDの「文字を入力」部分のセレクターですかね?

うーん、なんとなくですが二段目の「ctrid」辺りが怪しい気がしますね・・。
(アプリ起動するたびに毎回違う数値がランダムに割り当てられてるかもしれない)
ちょっとお手数なのですが、手動で
①一度アプリを閉じる
②もう一度アプリを起動して、ログインウィンドウを表示する
とやったあと
③アカウントID入力の部分のセレクターエディターを開いて左上が検証赤×になっているか確認する
④赤×になっているようならもう一度「画面上で指定」でアカウントID入力ボックスを選択しなおしてみる
⑤セレクターエディターを開いて検証緑〇になっているか確認する
とやってもらって、
⑤の状態のセレクターエディターのスクリーンショットをもらう事はできますでしょうか。

あと、ついでに伺っておきたいのですが、
ログインウィンドウはメインのアプリのウィンドウとは別に小窓が出る形だったりしますか?

⑤までの手順を行ってみたところ、仰るとおりIDが異なっていました。
起動時は検証×で、画面上で指定し直すと○になります。

ログインウィンドウは最初に小窓が出て、ログイン完了すると別のウィンドウでメイン画面が起動するといった感じです。
ログインウィンドウの前にもアプリのロゴ?のようなウィンドウが出ます。
(そのあとログインウィンドウが最前面に表示されます)

ご確認ありがとうございます。
そしてログイン用の小窓が別に出るタイプでしたか、うーんどうするのが一番きれいかな・・。
今「アプリケーションを開く」で指定しているウィンドウはぱっと見ログイン用小窓ですかね?
であればとりあえずログイン後の画面が開いた時の処理は後で考えるとして。
(アプリ起動時のロゴウィンドウ?は多分気にしなくていいです)

とりあえず「ctrid」が毎回変わってしまうから要素を見つけられない、という事が分かりましたので、
アカウントID入力のセレクターを、「ctrid」以外の要素を使って特定できないか色々試してみましょう。
検証緑〇の状態でセレクターエディターの左下にある「UI Explorerで開く」をクリックすると、
使えるセレクターがずらっと並んだ状態のUIExplorerが開くはずなので、
書かれている情報にまずいものがなさそうであればそれのスクリーンショットをいただけますでしょうか。
(↓こんな感じ。右上の選択した/していない項目の情報が欲しいです)

「アプリケーションを開く」で指定しているのはログインウィンドウになります。
いつもお手本までご丁寧にありがとうございます・・・。
何か使えるものはありそうでしょうか。

こちらこそ牛歩の進みでスミマセン。
いま、真ん中上部の「セレクターエディタ」部分が最下段を示しています。
この行では必要に応じて「cls」が使えるかもしれませんね。(特に使わなくていいかもしれませんが)
で、一段上のやつが問題の部分ですが、そちらを選択した時の項目はどんな感じになるでしょうか?

長々とありがとうございます…。
一番上のやつ、こちらでよいでしょうか?

本日はこれで帰宅しますので、以降は明日で大丈夫です!

一番上、グレイアウトしているこっちのことでしたかね、、

一「段」上なので一枚目のやつでだいじょぶです。

なるほど、「aaname」があるのでこいつを使えば多分特定には足りると思います。
あとは念のため「cls」も使ってもいいかもしれません。
なので
・「ctrlid」と、ついでにaanameと内容の被っている「title」のチェックをオフ
・「aaname」「cls」のチェックをオン
にして「保存」してやれば起動ごとに値の変わらないセレクターが設定できる、と思います。
お試しください。

仰る通りctrlidとtitleのチェックを外してaanameとclsにチェックを入れたところ、
実行することができました!!ありがとうございます!
今後のためにお聞きしたいのですが、どれが使えそうであるという判断基準ですとか、
同じ値のtitleではなくてaanameを使用する理由は何でしょうか…?

1 Like

まずは無事動いてよかったです。
もっと早い解決策の提示もできたかもしれませんが、できるだけ話が混乱しないようにしたかったので
一歩ずつ確認しながらやらせていただきました、お付き合いありがとうございました。

で、私もしっかり理論化できているわけでないので、いちユーザーの参考意見程度にしていただければ・・という感じなのですが。
(詳しい人が目撃していたらむしろ聞きたいです)

まずはセレクターを一度画面上から指定してみて、それを眺めてなんとなく
「どうも無作為についてる値っぽいな・・」と感じた要素については先述のようにUIExplorerで
他に安定しそうな要素に置き換えられないか試行錯誤してみる、という考え方でやっています。

アプリ/WEBサイトを作成した人がそのテキストボックスとかボタンとか、あるいはもっと大きなグループにつけた名前は
だいたい「aaname」に設定されている、という認識を持っています。
で、だいたいの場合、その名前というのはユニークになるようにつけているので、私はaanameがあれば基本的にそれを使うようにしています。
(たまにaanameが毎回変化するようなこともあるんですけど・・)

title項目の方は、例えばテキストボックスがあったとして、それの隣とか上についてる説明ラベル
(今回の例だと「アカウントID」とか「パスワード」とか)が設定されることが多い印象なのですが、
この説明ラベルの文言はしばしばウィンドウ内/ページ内で重複する事があるという認識なので、
aanameよりは使用する優先度が落ちる・・という感じですかね。
(とはいえ今回問題になったページでいえば特に重複していないので、aanameを採用したのは突き詰めていえば私の趣味といえます)

どうセレクターを設定するのがベストなのかは、UiPathを使う限りついて回ってくる命題だと思うので、
私も毎回勉強という感じです。

そんな感じでご参考になれば。