2017-04-11 383 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(); 
} 
相關問題