Windows Application Deiver を利用して、Windows 10 の設定アプリを起動する
はじめに
この記事は、Windows Application Driver で設定アプリを起動する方法について調べたときのメモです。
Windows Applicatin Deiver について
Windows Application Driver は、Windows 10 上のアプリケーションの自動 UI テストを行うためのテストフレームワークです。
設定アプリを起動するコード
設定アプリを起動するコードを以下に記載します。
namespace SettingsTest { public class SettingsSession { private const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723"; private const string SettingsAppId = @"Windows.ImmersiveControlPanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel"; protected static WindowsDriver<WindowsElement> session; public static void Setup(TestContext context) { // Launch Calculator application if it is not yet launched if (session == null) { // Create a new session to bring up an instance of the Calculator application // Note: Multiple calculator windows (instances) share the same process Id DesiredCapabilities appCapabilities = new DesiredCapabilities(); appCapabilities.SetCapability("app", SettingsAppId); session = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities); Assert.IsNotNull(session); // Set implicit timeout to 1.5 seconds to make element search to retry every 500 ms for at most three times session.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(1.5)); } } public static void TearDown() { // Close the application and delete the session if (session != null) { session.Quit(); session = null; } } } }
ポイントは、appCapabilities.SetCapability("app", SettingsAppId)
に渡すアプリケーション ID です。Windows 10 の UWP アプリの場合は、アプリケーション ID は、タスクマネージャのプロパティから調べることができます。
プロパティで表示されたテキストボックス内の Microsoft.WindowsCalculator_10.1805.1201.0_x64__8wekyb3d8bbwe
が、アプリケーションID になります。
しかしながら、設定アプリの場合は、そのような ID が表示されません。
調査した結果、Windows.ImmersiveControlPanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel
を指定すればよいことがわかりました。
動作確認
実際に Windows Application Driver を使って、Windows 10 の設定アプリを起動してみました。
おわりに
Windows Application Driver についてざっと調べた結果を記事にしただけなので、また新しいことが分かったら、追加記事を書いていきたいと思います。