セレクタの属性によって安定感が異なる?

セレクターを当てた時に選択する属性によってシナリオの動作の安定感が異なるでしょうか?

例えば、aaname属性、title属性、src属性、tag属性の中でaaname属性が一番安定感がある
といった感じの差はあるのでしょうか?

1 Like

多ければ走査コストはかかるけど安定。
少なければ走査コストはかからないけど不安定。

って思ってます

こんにちは

何をもって

安定感

が高いと評価するかによりますが、仮に
「一度設定したセレクターが、以降も変更せずに正確に当該要素を特定できる」
とするならば、
「ページやアプリケーションの構造に依存するので一概には言えない」
になると思います。

例えば、Webページの中の要素を一意に特定するものとして、id属性があります。
ページ内で一意に特定できますので、一般的にはかなり変化に強い属性ですが
サイトによってはid属性をアクセス毎に変化させるようなケースもありますし
id属性の付与の仕方によっては、ある日変化が生じるかもしれません。
そのため、必ずしもid属性だけで100%担保できるものではありません。

また指定する属性の多寡については、多すぎるとその分変化に対する耐性が
低くなりますので(本来1つの属性で特定できるものが、他の属性が
変化して合致しなくなることにより、特定できなくなる可能性)、
意味的に必要最小限の属性を指定することが肝要になるかと思います。

ただ逆に言うと、指定した属性が、本来意図した意味と離れて
しまった場合は、誤動作の要因にもなる可能性もありますので
その場合は、例外となるようにすることも重要と思います。

1 Like

どれを使えばいいか?はケースバイケースなので一概には言えないと思います。

aanameはボタンとかだと使えることが多いですが、テキストだと使えないことが多いイメージです。aanameは「Active Accessibility」の意で、UiAutomationが算出してくれるっぽいのですが、結果は要素の表示値だったり状態値だったりします。画面上で「表示値が一意」なら安定感があるんですけど。

個人的には毎回、UiExplorerの画面を見ながら「これとこれなら、ページ構造に依存しにくいので安定感あるかなあ」と個別に考えています。

1 Like

ハナッチ様
いつもご指導ありがとうございます。
セレクタを作るときはUiPath任せで
せいぜいワイルドカードを使うくらいで
「これでいいのだろうか。みなさんどうされているのだろうか。」といつも悩んでおりました。

Yoichi様
いつもご指導ありがとうございます。
安定感の定義が僕の中でも曖昧になっておりました。

セレクタを作る際に、id属性は避けるものの、他のどの属性を選択すべきか
はいつも悩みます。
ただ、属性の意味がイマイチよくわからないので悩んでいます。
(title属性だとさすがに分かりますが。。。)

基本はUiPath任せなのですが。。。

こんにちは

WebのID属性はかなり安定した属性になり得ます。取り扱いに注意が必要なのはUiPathが付与するidx属性かと思います。ご参考まで。

1 Like

shinji様
いつもご指導ありがとうございます。
Active Accessibilityは初めて知りました。
とても勉強になりました。

Yoichi様
失礼いたしました。
idx属性でした。

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