2017-04-11 41 views

回答

0

我正在使用WinAppDriver来自动执行WPF程序。这与Selenium非常相似,如果你有任何经验,那么我会建议使用WinAppDriver而不是White。你也可以使用Selenium WebDriverWait这是一个巨大的奖金。

还有一个称为'Inspect'的工具,它随Windows SDK一起提供,允许您检查类似于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(); 
} 
相关问题