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