Useful Softwares/Python Packages for Automating Windows applications
Revant M V S
Engineering Director at Phenom | BITS Pilani Alum | Driving Innovation and Team Excellence
There are well known giants for web applications like Selenium, UFT and so many other tools but when it comes to window based automation , There are third party tools and Python does have awesome packages which are available free/open source and works in the best way to handle almost of windows based tools (Be it the test case automation for application testing or task automation inline to RPA)
Third Party Applications
SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix.
- It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on. It also has the OCR
- Sikulix is definitely fruitful for basic tasks of windows automation in Windows and Mac environment with Python 2.7 and Jython supported but while working with python3 , there are issues undiscovered and can be opted where one does not need or have no time for code
AutoIT: Definitely of a choice because of easy BASIC like scripting and handles things in an easy manner but when we do think about cross platform - well its only supported on windows :) as per conversation here
- AutoItDriverServer is a Selenium server to control/drive AutoIt via (Remote)WebDriver API. It's simpler using the same WebDriver API to handle both AutoIt and Selenium in your language of choice. And simply run a server (or another server if including Selenium server JAR for Grid/RemoteWebDriver) on the target host machine (i.e. AutoItDriverServer) to be able to remotely handle AutoIt requests.
- Currently AutoItDriverServer is not built for Selenium Grid support so only runs standalone mode, but in the future, perhaps with help from others, it could be Grid compatible for easier deployment in Grid for tests that involve both AutoIt and Selenium. More Info around this is also available here
Python Packages
autopy is a very simple, cross-platform GUI automation toolkit for Python and Rust
PyAutoGUI :A cross-platform module for control the keyboard and mouse from a Python script. This is the one which I majorly use it in test scripts and quite useful and the documentation is very good and easy to understand
Winnium.Desktop : An open source test automation tool for automated testing of Windows application based on WinForms and WPF platforms. It is Selenium Remote WebDriver implementation
Pywinauto: Very pythonic object-oriented Windows GUI automation library. Now it supports 64-bit Py2 and Py3. This is another package of choice when scenario is limited to Windows
ldtp: Cross Platform Linux Desktop (GUI Application) Testing Project. LDTP is Linux version, while Cobra is Windows version and PyAtom is Mac version.
- Linux GUI testing is known to work on GNOME / KDE (QT >= 4.8) / Java Swing / ?LibreOffice / Mozilla application on all major Linux distribution
- Windows GUI testing is known to work on application written in .NET / C++ / Java / QT on Windows XP SP3 / Vista SP2 / Windows 7 / Windows 8
- Mac GUI testing is known to work on OS X Snow Leopard/Lion/Mountain Lion. Where ever ATOMac runs, LDTP should work on it
- It is aimed at producing high quality test automation framework and cutting-edge tools that can be used to test and improve the GNU/Linux or Solaris desktops. It uses the Accessibility libraries to discover through the application’s user interface.
- I personally loved the level of detail one can cover through this one!. Just Amazing!!!
fMBT is another library for multi platform GUI testing. Though did not explore it personally, This one looks promising!
AToMac is a Python library of choice which fully enable GUI testing of Mac applications via the Apple Accessibility API
As far as me, Specific Use Case/Scenario does define the choice of tool but on a personal note of choice I will like to stay with the ones where I can include/use them in standard code apart from invoking a third part app. Thanks to awesome creators of Softwares/Packages!
Did you encounter any other tools/softwares/packages? Do post them below :) It helps to explore more tools which are still uncovered and this post could have a good collation of the best ones.
Principal Software Engineer(QA) at Conga
2 年We use Atomac
Information Technology Manager | MTech in Data Science Eng., MBA IT, BE CSE | PMP, P3O, AWS, ORACLE, ITIL, MSP, PRINCE2, COBIT
6 年Very impressive and useful on automation
Data & AI Products | Analytics | Gen AI | Engg | Cloud | Data Practice | ISB
6 年Good start Revant, nice info on Automation inputs
SAP CRM Lead Consultant
6 年Quite Informative?