Posted at

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 についてざっと調べた結果を記事にしただけなので、また新しいことが分かったら、追加記事を書いていきたいと思います。