#はじめに
WinAppDriverの公式GitHubでテストスクリプトの書き方が公開されていますが、公式通りに書いたら引数エラーが発生したので回避方法を書き留めます。
#公式ページ通りにテストスクリプトを書いてみる
参照
UnitTest1.cs
public void TestMethod1()
{
DesiredCapabilities appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app", "Microsoft.WindowsAlarms_8wekyb3d8bbwe!App");
AlarmClockSession = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appCapabilities);
AlarmClockSession.FindElementByAccessibilityId("AddAlarmButton").Click();
AlarmClockSession.FindElementByAccessibilityId("AlarmNameTextBox").Clear();
}
##new WindowsDriver<WindowsElement>の引数で下記エラーが発生
引数 1: は 'System.Uri' から 'OpenQA.Selenium.Appium.AppiumOptions' へ変換することはできません。
引数 2: は 'OpenQA.Selenium.Remote.DesiredCapabilities' から 'System.TimeSpan' へ変換することはできません。
解決方法
DesiredCapabilities を AppiumOptions で代替することができる。
修正後コード
UnitTest1.cs
public void TestMethod1()
{
// DesiredCapabilities appCapabilities = new DesiredCapabilities();
AppiumOptions appCapabilities = new AppiumOptions();
// appCapabilities.SetCapability("app", "Microsoft.WindowsAlarms_8wekyb3d8bbwe!App");
appCapabilities.AddAdditionalCapability("app", "Microsoft.WindowsAlarms_8wekyb3d8bbwe!App");
AlarmClockSession = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appCapabilities);
AlarmClockSession.FindElementByAccessibilityId("AddAlarmButton").Click();
AlarmClockSession.FindElementByAccessibilityId("AlarmNameTextBox").Clear();
}
参考
https://github.com/microsoft/WinAppDriver/issues/529#issuecomment-482426016