tafuji's blog

C#, Xamarin, Azure DevOps を中心に書いています。

Windows Application Deiver を利用して、Windows 10 の設定アプリを起動する

Qiita より転載

はじめに

この記事は、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 は、タスクマネージャのプロパティから調べることができます。

TaskManager

プロパティで表示されたテキストボックス内の Microsoft.WindowsCalculator_10.1805.1201.0_x64__8wekyb3d8bbwe が、アプリケーションID になります。

Property

しかしながら、設定アプリの場合は、そのような ID が表示されません。

SettingsProperty

調査した結果、Windows.ImmersiveControlPanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel を指定すればよいことがわかりました。

動作確認

実際に Windows Application Driver を使って、Windows 10 の設定アプリを起動してみました。

demo

おわりに

Windows Application Driver についてざっと調べた結果を記事にしただけなので、また新しいことが分かったら、追加記事を書いていきたいと思います。