WinAppDriverを使ってみる1

JavaSeleniumも英語もわからないけどとにかくwindows application driver使いたいシリーズ

とりあえずサンプル改変して何か動かしてみよう!って段階でつまずいたことをメモします。

DesiredCapabilitiesって何?

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("app", "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App");

この"app"って何入れればいいんだろう…
Capabilitiesについて を読んでみるとDesiredCapabilitiesクラスはブラウザの設定で、capabilitiesは詳細設定みたいなイメージなのかなー?

でもappはないなーWinAppDriverにあるかなーと思ったらあった。
GitHub - Microsoft/WinAppDriver: Windows Application Driver appにはApplication identifier(アプリケーション識別子?)ってやつか実行可能なフルパスを入れればいいっぽい。

Application identifierってどうやって調べるの?

inspect.exeかなーと思ったけど電卓で試してみても同じような文字列は見当たらない。
Windows Application identifier」で画像検索したらいいページ発見。
Find the AUMID (Application User Model ID) of an installed UWP app - jcutrer.com
神!このページの通りやったら表示できた!

  1. Winキー+Rで「ファイル名を指定して実行」を開く
  2. shell:Appsfolderを入力してEnter
  3. 右上アイコンから詳細表示にする
  4. Altキー+Vで 表示 > 詳細表示の設定
  5. AppUserModelIdにチェックを入れてok

f:id:qroku:20190201123006p:plain 表示された電卓のAppUserModelIdをサンプルソースと比べたら一緒なのでこの方法で良さそう。

なんだけど!!!
{honyahoya}\cmd.exeで試してみたらダメみたい。

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{app={honyahonya}\cmd.exe, platformName=Windows}], required capabilities = Capabilities [{}]

直せる方法あるのかもしれないけど、わかんないなら素直にフルパス書いた方が無難ですね