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

初心者に手取り足取り、何日にもわたって本当にありがとうございます…。
大変わかりやすかったです。

aanameやtitleなどの細かい項目について、そういう経験上こうだとか
感覚的にこうだろうみたいな部分は本やサイトで勉強してもわからない部分なので
とても助かります。実践ではこういうところこそ必要ですよね…。

セレクターエディタで表示されているhtmlタグのようなものは
要素の特定に使用する項目で、一番上がそのウィンドウ?全体の情報、
2段目が指定しようとしている要素の情報だろうなということはうっすらわかるのですが、
3段目のctrlidだけが指定されている段は何の情報なのでしょうか?
試しにここをctrlidではなくclsに変えてみたところ動作しなくなりました。

また、同じウィンドウのパスワード用テキストボックスを指定しようとした時に
aanameを使用しようとしたところ、ID用テキストボックスと同じ値だったので
はじめIDのテキストボックスを上書きしてしまう処理になりました。
試行錯誤していたら末尾にidx=1(ID用テキストボックス)、
idx=2(パスワード用テキストボックス)が出現?して指定できるようになりました。
このidxは作成者が指定したものなのでしょうか、それともシステム上
インデックスが振られたというようなことなのでしょうか。
(次回aanameがかぶったパターンの時idxがないと詰むのでは…という懸念です)

長々と質問ばかり重ねてしまい恐縮なのですが、もう少しだけ
ペーペーにお付き合いくださると幸いです。

根拠はないんですが、最下段は2段目で指定した要素のどのプロパティか、的な情報を示しているのかなと適当に思っています。
(今回だとたとえば「JstrInputf50.OCX」という名前の「AfxOleControl140」型オブジェクトの「Edit」属性を示す)

が、clsに変えたら動かなくなる理由はよく分かりません・・。
突き詰めていくと多分キリがないので、「まあ動かないなら仕方ないのでctrlid使うか」で納得してしまいそうです。

ウワーッ理解が面倒なパターンになりましたね。
多分ですが、アカウントID欄とパスワード欄で2段目のaaname、cls、3段目のctrlid、clsが全く同じなんですよね?

その場合、おそらくUIExplorerで先述したような形で2段目を選択した時、
選択した/していない項目どちらにも存在しないはずの「idx」という項目が下部のセレクター文字列中に出てきたんじゃないかと思います。

これは全く同じセレクター文字列の示す要素が複数ある場合にUiPathが区別のために自動で採番する項目で、
アプリ/WEBページ内で先に定義されている要素(大体左上から先に記述されてると思います)から
1、2・・と振っていく項目になります。

ソース上に実際に記載されているものではないので、できれば頼りたくない項目ではあるのですが、
今回のアカウントIDとパスワード欄のようにどうにも他に手がない場合には
これまた「まあ仕方ないか」で使ってしまってもいいかと思います。
(多分アプリケーション的には、起動のたびにctrlidをランダム採番して、内部的にその数値でどっちのテキストボックスか判断しているのかもしれないですね)

逆に言えばセレクターが被る要素が複数あった場合、UIExplorerのチェックオンオフでセレクターをいじっている限りは
必要に応じて勝手にidxが登場するので、詰むことはないと思います。
(むしろ詰ませないためにUiPathが自動で振っている項目になるので)

ちょっとピンボケした回答になってしまったかもしれませんが、なんとなく伝わりますでしょうか。

そういうものなんですね。
そうやって試行錯誤するものなのか…頑張ります笑。

なるほど!そうです、指定した覚えもないのにidxが出現して、
しかも恐らくそれで2つの要素を識別しているように思ったので
これがどういう理由で出てきたのか知りたかったのです。
UIPathが自動で採番してくれたものだというのならひとまず安心です。
(あまり使用しないほうがよい項目であることは理解しました)

ご丁寧に本当にありがとうございました!
また何かにつまづいて質問することが沢山あると思いますが、
お目に留まる機会がありましたら是非よろしくお願いいたします。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.