So, I'm a new(ish) QA automation intern at my company. Since I got in, I've been researching different tools and methods of automation. We have a web service that we can automate just fine. The thing is, there is also a windows application that needs to be automated for QA as well. I've looked into a framework called Winium. However, in order to select specific elements, you need to use some sort of selector and the application doesn't show up with any way to get selectors. I used the Microsoft application "Inspect.exe" but the app came up with nothing even though inspect worked on other apps. Is there some app or framework that can help me? Or, am I just doing it wrong? Thanks in advance for any answers!
Framework that allows to automate desktop applications
9.9k Views Asked by jalbr98 At
2
There are 2 best solutions below
1

To automate desktop applications there are a few great choices available as follows:
- UiPath Studio software solution allows automating repetitive office tasks.
- WinAppDriver is a service to support Selenium-like UI Test Automation on Windows Applications. This service supports testing Universal Windows Platform (UWP), Windows Forms (WinForms), Windows Presentation Foundation (WPF), and Classic Windows (Win32) apps on Windows 10 PCs.
- AutoIT is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained and will run on all versions of Windows out-of-the-box with no annoying “runtimes” required.
- Winium is an automation framework for Windows platforms. It is opensource and is Selenium-based.
- TestStack.White is a framework for automating rich client applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) platforms. It is .NET based and does not require the use of any proprietary scripting languages. Tests/automation programs using White can be written with whatever .NET language, IDE and tools you are already using. White provides a consistent object-oriented API, hiding the complexity of Microsoft's UIAutomation library (on which White is based) and windows messages.
- LDTP (Linux Desktop Testing Project) is a Cross Platform GUI Test Automation tool.
- SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix.
- Pywinauto is a GUI automation library written in pure Python and well developed for Windows GUI. At its simplest it allows you to send mouse and keyboard actions to dialogs and controls on both Windows and Linux, while more complex text-based actions are supported on Windows only so far
- Robot Class / Win.form Class: These tools are distinctively different than the rest, in the way that they aren’t directly destined as test automation tools for desktop applications, but act as classes to simulate activities of the keyboard and mouse. Whereas, the Robot Class could be used with Java and Win.form is for .Net.
You can find some relevant discussions in:
You can go look into WinAppDriver (Link) It supports good amount of APIs that you can use (API)
If you are comfortable with C# then WinAppDriver is a good option.
You can also think about using PyWinAuto (Link) if you are more into Python.
As you mention, finding window elements based on any unique attribute is challenging when it comes to Desktop Automation. However, you can check THESE tools to inspect desktop elements.