As you may be aware, the demand for automation testing is on the rise nowadays, not only for web and mobile applications but also for desktop applications. Recognizing the need for automated testing for desktop applications combined with the Robot Framework, during my research, I discovered that the RPA library is one of the noteworthy options to consider due to its flexibility across multiple languages and its ability to address the challenge of automation on desktop applications. Join me as we explore the fascinating features of this library.
1. Introduction to RPA Framework
RPA Framework is a collection of open-source libraries and tools for Robotic Process Automation (RPA), and it is designed to be used with both Robot Framework and Python. The goal is to offer well-documented and actively maintained core libraries for Software Robot Developers.
The RPA framework provides libraries support for the implementation and deployment of automation tasks.
For Web Applications: RPA.Browser, RPA.Browser.Selenium, and RPA.Browser.Playwright.
For Desktop Applications:
- RPA.Desktop can cross-platform desktop automation.
- RPA.Windows can windows desktop automation.
2. List RPA libraries
The RPA framework provides libraries support for the implementation and deployment of automation tasks. The RPA Framework project currently includes the following libraries:
| LIBRARY NAME | DESCRIPTION |
| Archive | Archiving TAR and ZIP files |
| Assistant | Display information to a user and request input. |
| Browser.Selenium | Control browsers and automate the web |
| Browser.Playwright | Newer way to control browsers |
| Calendar | For date and time manipulations |
| Cloud.AWS | Use Amazon AWS services |
| Cloud.Azure | Use Microsoft Azure services |
| Cloud.Google | Use Google Cloud services |
| Crypto | Common hashing and encryption operations |
| Database | Interact with databases |
| Desktop | Cross-platform desktop automation |
| Desktop.Clipboard | Interact with the system clipboard |
| Desktop.OperatingSystem | Read OS information and manipulate processes |
| DocumentAI | Intelligent Document Processing wrapper |
| DocumentAI.Base64AI | Intelligent Document Processing service |
| DocumentAI.Nanonets | Intelligent Document Processing service |
| Email.Exchange | E-Mail operations (Exchange protocol) |
| Email.ImapSmtp | E-Mail operations (IMAP & SMTP) |
| Excel.Application | Control the Excel desktop application |
| Excel.Files | Manipulate Excel files directly |
| FileSystem | Read and manipulate files and paths |
| FTP | Interact with FTP servers |
| HTTP | Interact directly with web APIs |
| Hubspot | Access HubSpot CRM data objects |
| Images | Manipulate images |
| JavaAccessBridge | Control Java applications |
| JSON | Manipulate JSON objects |
| MFA | Authenticate using one-time passwords (OTP) & OAuth2 |
| Notifier | Notify messages using different services |
| OpenAI | Artificial Intelligence service |
| Outlook.Application | Control the Outlook desktop application |
| Read and create PDF documents | |
| Robocorp.Process | Use the Robocorp Process API |
| Robocorp.WorkItems | Use the Robocorp Work Items API |
| Robocorp.Vault | Use the Robocorp Secrets API |
| Robocorp.Storage | Use the Robocorp Asset Storage API |
| Salesforce | Salesforce operations |
| SAP | Control SAP GUI desktop client |
| Smartsheet | Access Smartsheet sheets |
| Tables | Manipulate, sort, and filter tabular data |
| Tasks | Control task execution |
| Twitter API interface | |
| Windows | Alternative library for Windows automation |
| Word.Application | Control the Word desktop application |
3. Advantage and disadvantages of RPA in Desktop application automation
3.1 Advantage
- RPA is completely free to use.
- Supports Python and Robot
- Can cross-platform desktop automation
- Can integrate with popular CI/CD platforms like Azure DevOps, Jenkins,…
- Support Robocorp inspector and window recorder to catch locators
- Support finds locators by image
3.2 Disadvantages
- The functionality for interacting with desktop applications is still limited.
- Regarding RPA.Windows – Lacks support for the wait element mechanism.
- Regarding RPA.Desktop – The support for catching elements using both images and text makes it susceptible to influences such as the recognition of images, screen resolution, and variations in different versions of the same operating system.
- Limited Testing Capabilities (RPA may not offer the same depth and breadth of testing capabilities as dedicated automation testing tools).
- Performance Issues (RPA tools may introduce performance overhead, leading to slower execution times compared to native automation testing tools.)
4. Conclusion
In conclusion, RPA frameworks provide robust support with a variety of libraries catering to automation testing needs, including testing for web and desktop applications. Additionally, they seamlessly integrate libraries for working with APIs, databases, and Microsoft Office, thereby enhancing efficiency and productivity for organizations. If you are currently using the Robot Framework and have a need for automating Desktop Applications, then the RPA framework is definitely a choice worth considering.
References:
- https://rpaframework.org/
- https://rpaframework.org/libraries/desktop/index.html
- https://rpaframework.org/libraries/desktop_windows/index.html