Build 2016のセッション「UI Test Automation for Browsers and Apps Using the WebDriver Standard」でWindows Application Driver(WinAppDriver)が紹介されていたので、さっそく試してみました。
下準備
- Windows Application Driverをダウンロード・インストールします。
- NuGetから「Appium Webdriver」をインストールします。
nuget install "Appium.WebDriver"
電卓を操作するC#コード
//appium-dotnet-driver.dll, WebDriver.dll 要参照 using System; using OpenQA.Selenium.Remote; namespace AppiumSample { class Program { public static void Main(string[] args) { //Windows Application Driver実行 string serverPath = System.IO.Path.Combine( System.Environment.GetFolderPath( System.Environment.SpecialFolder.ProgramFilesX86 ), @"Windows Application Driver", "WinAppDriver.exe" ); System.Diagnostics.Process.Start(serverPath); //電卓操作 DesiredCapabilities appCapabilities = new DesiredCapabilities(); appCapabilities.SetCapability("app", "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"); RemoteWebDriver driver = new RemoteWebDriver(new Uri(@"http://127.0.0.1:4723"), appCapabilities); driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(2)); driver.FindElementByName("1").Click(); driver.FindElementByName("2").Click(); driver.FindElementByName("3").Click(); driver.FindElementByName("4").Click(); driver.FindElementByName("5").Click(); //driver.Dispose(); //driver = null; Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } } }
コードを見れば分かる通り、Selenium WebDriverと同じような書き方でテストコードを書くことができます。
・・・が、Beta版だけあってまだまだ動作は不安定。
現時点では「Winium.Cruciatus」の方が完成度は高いように感じます。
とはいえ、“Microsoft公式”という信頼感、そして今後の予定としてはモバイルやXboxまでサポートしていくらしいので、共通のコードでWin32アプリからUWPアプリ、果てはXboxアプリまでテストできるとなると、かなりの強みになるだろうと思います。
この記事へのコメントはありません。