JavaもSeleniumも英語もわからないけどとにかく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
神!このページの通りやったら表示できた!
- Winキー+Rで「ファイル名を指定して実行」を開く
shell:Appsfolder
を入力してEnter- 右上アイコンから詳細表示にする
- Altキー+Vで 表示 > 詳細表示の設定
- AppUserModelIdにチェックを入れてok
表示された電卓の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 [{}]
直せる方法あるのかもしれないけど、わかんないなら素直にフルパス書いた方が無難ですね