この記事ではSelectorについて意外と知られていないのでは?と思っている事を書きました。
一致するものが複数ある場合、その中で最前面にある画面要素に対して作用する。
Selectorは画面の中で一意になるところまで絞り込む必要はありません。ただ、同じSelectorの画面が複数表示されている場合、一番前面にあるSelectorの条件を満たす画面要素をSelectします。
アプリケーション横断的なSelectorを作る事ができる。
下記Selectorはタイトルに無題が含まれていればどのようなアプリケーションでもSelectします。
\
キーとなっているのは対象アプリに対してomitしている事です。「無題」というタイトルのExcelファイルやメモ帳どちらに対しても作用可能です。一つ前のトピックで話した通り、より前面にあるアプリケーションを指定します。
UiElement型から取得できる。
UiElement型はFind Activityなどを使うと取得できますが、こちらをSelectorに戻す事が可能です。方法としては取得したUiElement型のSelectorメソッドを使い、さらにToStringメソッドを使えば、Clickアクティビティで使えるSelector文字列が作られます。elementという変数の場合であれば、たとえば下記操作になります。
element.Selector.ToString
終わりに
画面要素取得はSelectorを使いFindアクティビティでUiElement型の変数を取得したあと、Find Childrenアクティビティで子要素を取得したり、Get Ancestorアクティビティで親要素を取得する事も可能です。Selector、及びUiElement型について詳しくなる事で、取りにくい画面要素を取得できるようになります。ぜひSelectorやUiElementで様々な事を試してみてください。