Windowsアプリの画面定義を手動で行う方法
はじめに
Windowsアプリのプロジェクトでは画面定義の際に「WinTool」を使用することができます。
一部のアプリでは、構成や作りによってWinToolで画面定義が行えずXPathの取得が難しいことがあります。
そういう場合に手動でXPathの取得をする方法をご紹介いたします。

WinToolに関しては以下のチュートリアルをご参照ください。
■【画面定義】Windowsアプリのキャプチャツールを使用しよう
/t-dash/function/tutorial/windowsapp_vol_003
もくじ
詳細
WindowsアプリのXPathの基本構造
XPathは階層構造を持つUI要素を指定するためのパスです。Windows アプリケーションの場合、以下のような階層になっています

主要な要素の属性
AutomationId
アプリケーション開発者が設定する一意の識別子です。
//Button[@AutomationId='saveButton']
Name
要素の表示テキストです。
//Button[@Name='保存']
ControlType
要素の種類(Button, Edit, ComboBoxなど)
//Edit[@ControlType='text']
ClassName
Windowsの内部クラス名
//Window[@ClassName='Notepad']
XPathを手動で作成する
「画面定義」タブ→「画面作成」ボタンをクリックして、新規で画面を作成します。

画面名を入力し画面を作成したら、クリックして詳細画面を表示します。
「T-DASH WinTool起動」ボタンを押して、キャプチャツールを起動します。

WinToolが起動したら、
①左上の「トラッキング」をクリック
②「アプリ起動」ボタンをクリックで、アプリを起動する
※すでにアプリが起動されている場合は不要
③起動したら、アプリ固定アイコン(ピンマーク)をクリックすると、キャプチャ対象のアプリが固定される。
※すでにアプリが起動している場合は、アプリのウィンドウをクリックしてフォーカスした後、アプリ固定アイコンをクリックしてください。

WinToolの左側(画像①、②、③)に、アプリの情報が表示されています。

①トラッキング対象アプリ情報:
アプリ名やプロセスIDなど起動したアプリの情報が表示されます。
②対象アプリウィンドウ構成ツリー:
アプリのUI階層が確認できます、「Window」が最上位コンテナとなり、その下にメニューやツールバーなどが存在します。
③要素詳細情報とXPath
アプリを構成する要素の属性が表示されます、XPathの作成にも使用します。
トラッキングした要素や、構成ツリーからクリックした要素のXPathが表示されています。
「要素XPath」に表示されるXPathは、絶対パスとなります。
例)メモ帳アプリのメニューバーから「表示(V)」のXPathを作成する:
要素詳細情報から、以下の情報を使って相対パスを作成します。
ControlType: MenuItem
Name: 表示(V)
作成したXPathをテキストエリアに入力すると(1/1)と表示されて一意のパスになっていることが分かります。
WindowからMenuItemをスラッシュを2つ // とすると、間の要素をスキップして書くことが可能です。

一意にならない場合は、さらに属性や一部階層を含めて書く、など工夫が必要になります。

以下のように記載すると、さらに絞り込むことが可能となります。
- MenuItemのName属性を含める
- MenuItemの何番目か記載する
/Window//MenuBar[@AutomationId='MenuBar']/MenuItem[@Name='ファイル(F)']
/Window//MenuBar[@AutomationId='MenuBar']/MenuItem[1]

//* を使用することで、CtrolTypeの指定を省略することができます。

Qiita記事のご紹介
弊社社員によるQiita記事を公開しておりますので、どうぞご参照ください。
[T-DASH] Windows アプリのXPath取得をもっと簡単に!
https://qiita.com/tktktkkk/items/a0d09176cf5fcaf9f125