Authors
Stelios Manioudakis & Dimitris Papadimitriou
Overview
Robotic process automation is a technology for automating manual and labor intensive processes. Robin, a new programming language, has been introduced to address such needs and expand the available automation options. We explore RPA software quality in its most basic form: simplicity.
Introduction
The global robotic process automation (RPA) market is evolving rapidly, automation is expected to reshape the workforce. RPA Software has entered the Trough of Disillusionment on the Gartner Hype Cycle for Application and Integration Infrastructure, 2019,1 Gartner anticipates it will reach the Plateau of Productivity within 24 months.
Reshaping and disillusionment are two more factors that necessitate highly-skilled RPA developers. While the software professional’s responsibilities are continuously evolving, requiring to work in areas that may have “belonged” to a different role in the past, the RPA developer poses a new evolution paradigm. Although there is no need for any programming language experience, typical QA engineering skills like end-user critical thinking and business orientation are very important. The release of Robin, is an attempt to cultivate an RPA developer community, towards RPA quality. We hope QA engineers will find Robin to be a friendly language and a useful tool towards RPA development. Robin is here to make life simpler.
A common scenario among RPA developers is web data extraction. We will visit a website that publishes stocks from various stock markets, retrieve some data and store it locally.
Robin has a simple syntax. By following the best practices below we can make our scripts intelligible, dynamic and maintainable. Robin also provides a tool for UI and Web Automation, UISpy that allows selector creation for web and/or desktop control manipulation.
Let’s follow some steps:
1. Visit the following website.
2. Launch UISpy.
3. In UISpy click “Add Control”.
4. Position your mouse over an element of the United States table.
5. Hold “Ctrl + Shift” and scroll down until the table element is highlighted.
____________________________________________________________________________
Please note that the Robin version used for the specific example is 0.9.1.5517.
Depending on the Robin version you have installed,
the script might need some changes in order to function as expected.
____________________________________________________________________________
6. Hold Ctrl and left click to capture the HTMLTable.
7. Hit “DONE”.
Note we renamed the .appmask (the file where the generated selector(s) are stored), the application name, the window name and the selector for clarity.
8. Save the file.
____________________________________________________________________
Sidenote
Click “Edit Selectors”.
Modification of selectors is possible through the selector builder. The default selector is sufficient in most cases. The best approach is to first experiment with the autogenerated selector and then modify it accordingly.
To follow the guide step-by-step leave the selector as it was generated.
___________________________________________________________________
9. Open Robin’s editor.
.appmask files must be imported at the top of the script.
Selectors are now available.
The syntax to reference a selector is:
[.appmask file].[application].[screen/window].[control]
10. Selectors should be stored in variables for convenience.
11. Store the website url.
Functionality in Robin comes in the form of modules and actions. Modules are essentially groups dedicated to a category (e.g.Excel). Nested in modules are sets of actions. By writing Excel.Launch, we utilize Excel’s Launch action.
12. Utilize the WebAutomation.LaunchChrome action and pass the Website variable.
Code formatting of action inputs that are generated:
a) Separate inputs, leaving one per line, using the special character ‘\’ which marks line change.
b) Align them.
c) Remove autogenerated inputs, if unmodified.
The action should look like this:
13. Now we can use the WebAutomation.ExtractHtmlTableInExcel action
to extract and write data to an excel instance.
14. We store the excel instance.
15. Press “Run”.
After the execution finishes, an .xlsx file is available in the declared folder.
By opening the file we see its cells populated with the extracted values.
This is how the whole script looks like:
Conclusion
Robin is a simple yet effective programming language for RPA. We’ve created a script that extracts web data and we followed some basic design principles and best practices. The possibilities are countless and it’s up to you to explore. RPA developers, let’s rock’n’roll.
References
1. Gartner, Hype Cycle for Application and Integration Infrastructure, 2019, Eric Thoo & Massimo Pezzini, 1 August 2019
Gartner does not endorse any vendor, product or service depicted in its research publications, and does not advise technology users to select only those vendors with the highest ratings or other designation. Gartner research publications consist of the opinions of Gartner’s research organization and should not be construed as statements of fact. Gartner disclaims all warranties, express or implied, with respect to this research, including any warranties of merchantability or fitness for a particular purpose.