WinAppDriver UI Recorderがリリースされた！

2019/05/17 追記

Windows Application Driver で利用できる操作を記録するツール [WinAppDriver UI Recorder](https://github.com/microsoft/WinAppDriver/releases/tag/UIR-v1.1) が更新されました。

ビルドしなくても動くようになってる！:smirk:
UIも若干変更になってますが、赤枠部分に状態が表示されるようになったっぽい。
![aWS050629.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187061/f67b45b2-ba27-55ee-ecea-04ca64767286.jpeg)

恐らく以下のような感じ。

Active：操作解析が動いてるよ
XPath Ready：記録できるよ
UI Action Added：記録したよ


# 概要

Windowsアプリケーションのテスト自動化をするために個人的に期待している、WinAppDriverにUIで簡単に調査とテスト実行ができるツールが作成されたようです！
これでちまちま要素を調査する必要がなくなりそう:hugging:

[WinAppDriver](https://github.com/Microsoft/WinAppDriver/releases)

リリース内容（google訳）によると・・・

> WinAppDriver UIレコーダーを紹介します。このツールは、WinAppDriverに使用されるUI自動化スクリプトの開発を検査し、簡略化する代替手段として期待されています。
> WinAppDriver UI Recorder v1.0は、次の2つのシナリオをサポートしています。
> 
> - UI要素のXPath式の生成
> - 記録されたマウスとキーボードのUI入力イベントからC＃コードを生成します。
> 
> 開始するには、圧縮したバイナリをダウンロードして解凍し、WinAppDriverUiRecorder.exeを起動します。
> 
> ![winapp02.gif](https://qiita-image-store.s3.amazonaws.com/0/187061/f2f40043-0753-1d8e-ced2-d94257e74bea.gif)
> 記録プロセスの例（出典：Microsoft）

# 試してみた（起動せず）

[Selenium Grid、Appium、Windows Application DriverでWindowsアプリケーションのテスト環境を構築する](https://qiita.com/umasaki/items/105d9e12f45079ead251)で作成したWindows10 32bit環境で実行してみます。

ダウンロードしたexeを起動すると・・・
![aWS050363.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/052ae880-1a18-c6f4-8472-cb26a6fd61dd.jpeg)

おや？
AnyCpuビルドではなく64bitビルドっすかね？:innocent:

Windows10 64bitを用意し、開発者モードに設定し起動してみてもプロセスは起動するけど画面が表示されず、いつのまにかプロセスが終了している・・・

Windows Blogの[Introducing WinAppDriver UI Recorder](https://blogs.windows.com/buildingapps/2018/06/20/introducing-winappdriver-ui-recorder/)を見てみる。

> Getting Started
> The code for the UI Recorder is open-sourced and available on WinAppDriver’s GitHub repo here.
> It’s recommended to use Visual Studio 2017 to start building and compiling it.
> Once compiled, you can immediately start using UI Recorder.

google訳だと**『Visual Studio 2017を使用してビルドとコンパイルを開始することをお勧めします』**とのこと。

ビルド環境が用意できたら後でやってみまうす＿(´ཀ`」 ∠)＿


# 試してみた（起動できました:kissing_heart:）

同じような[Issues](https://github.com/Microsoft/WinAppDriver/issues/437)はもう上がってますね。
近々バイナリ直る可能性ありますね。

待ってても試せないので、Windows10 32bit環境にVisual Studio 2017(.NetとC++が必要っぽい)を用意しました。

Visual Studio 2017 を用意してダウンロードしたプロジェクト(WinAppDriver-UiR_v1.0-RC\Tools\UIRecorder\WinAppDriverUIRecorder.sln)を読み込んでみる。

この状態で実行する。
![aWS050364.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/b6302ff4-8c15-3589-9caf-422520227a0a.jpeg)

ビルドするとエラーが・・・

|重大度レベル|コード|説明|
|:-----------------|:------------------|:-------------------|
|エラー|MSB8036|Windows SDK バージョン 10.0.16299.0 が見つかりませんでした。必要なバージョンの Windows SDK をインストールするか、プロジェクト プロパティ ページで SDK バージョンを変更するか、ソリューションを右クリックして [ソリューションの再ターゲット] を選択してください。|

[Windows SDK とエミュレーターのアーカイブ](https://developer.microsoft.com/ja-jp/windows/downloads/sdk-archive)から指定されているバージョンをダウンロードし、インストール。
最新のWindows SDKは動かなかった時の切り分けが面倒なので試していません。

もしかしてWindows SDKがなかったから起動しなかったのではと思い、Windows SDKインストール後にexeを実行するも起動しねぇぇ:weary:
諦めて作業を続けることに・・・

インストール後に再度実行で、起動しました！
ふぃー(・д・｀*)
![aWS050367.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/9f2dd9c8-3143-714a-7ef6-a751da12bd1c.jpeg)

下に表示されているRecordを押さなくても動いてる感じですなぁ。
![aWS050374.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/07c80290-bfc3-13bd-cdb9-49278b9fc20e.jpeg)

Recordを押した時は操作のスナップを取るイメージっぽい。
![aWS050369.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/9ee91517-9bb0-8d6a-062a-41755061738c.jpeg)

記録OKな状態になるのは選択部分が点滅したとき？（ここでは1にカーソルを当てている）
![aWS050382.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/ad76dfc0-a4b6-eb4e-a84a-c0528fa0fbce.jpeg)

電卓で『1, +, 7, =』の順でゆっくりキーを押すとこのように記録されている。
![aWS050370.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/c06b2432-04b9-e2c1-09b1-9cb3d45b7f7a.jpeg)

各種内容が記録されている。
一番下に表示されているのが、リストに表示されている内容みたいです。
![aWS050371.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/1c1980f6-a7ee-f2e5-fc82-897f44126dcd.jpeg)
![aWS050372.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/05d97f8a-110c-1ac9-a9b1-b53e27ec47bc.jpeg)

C#のコードもこの通り。
![aWS050373.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/b9a08c6a-fb78-4c42-25e5-7ca2aaf3197d.jpeg)

ここをクリックするとクリップボードにスナップした内容だけのC#コードが取れる模様です。
![aWS050379.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/4563a40d-78ed-62d7-c45f-d467e6b0b2a4.jpeg)
![aWS050380.JPG](https://qiita-image-store.s3.amazonaws.com/0/187061/2ccd1041-56c9-8e86-9049-78b36cf64e6a.jpeg)