我正在寻找自动化Windows应用程序,并研究要使用的工具。我遇到过Appium/WinAppDriver,但不确定到目前为止它是否在任何地方都有很好的用法。感谢对此的建议。
我目前正在使用 WinAppDriver 来自动化 WPF 程序。它与Selenium非常相似,如果您有任何经验,那么我建议您使用WinAppDriver而不是White之类的东西。您还可以使用Selenium WebDriverWait,这是一个巨大的奖励。
WindowsSDK附带了一个名为"检查"的工具,允许您检查类似于Web浏览器开发工具的Windows应用程序。
您只需启动一个驱动程序(类似于Selenium(,但是您还需要启动WinApp进程。
C# 示例:
protected WindowsDriver<WindowsElement> GetWindowsDriver()
{
var appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app",
PathHelper.GetClientInstallPath() + "APPLICATION.exe");
appCapabilities.SetCapability("deviceName", "WindowsPC");
if (!IsWinAppDriverProcesssRunning())
{
StartWinAppProcessRunning();
}
var driver = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), appCapabilities);
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
return driver;
}
private static bool IsWinAppDriverProcesssRunning()
{
const string processName = "WinAppDriver";
var existingProcesses = Process.GetProcessesByName(processName);
return existingProcesses.Any();
}
private static void StartWinAppProcessRunning()
{
const string winAppDirectory = @"C:Program Files (x86)Windows Application Driver";
var winAppProcess =
new Process
{
StartInfo =
{
FileName = Path.Combine(winAppDirectory, "WinAppDriver.exe"),
WindowStyle = ProcessWindowStyle.Hidden,
WorkingDirectory = winAppDirectory
}
};
winAppProcess.Start();
}