I’m looking for a fully open source RPA, and robotframework seems fairly active… Yet it seems to miss a few must-have features (available in tagUi, but it has a much less active community) and I don’t know if I just me missing the info or not.
Among others:
is it possible to have a “live mode” where I can type commands a see in live how the browser responds? Seems needed to debug/write anything.
it it possible to have a “record” option that generates automatically a script based on my actions in the browser to quickly prototype? TagUi has one and maybe cypress (or was it playwright) as well?
how can I run then my scripts for many entries, e.g. stored in a spreadsheet? Do I need to manually code some bash to sun robotframework command line, or is there a low-code approach?
Indeed execute test in debug mode with VsCode/Robotcode is a good solution.
You can start you test and have a breakpoint, then execute manually your commands (one or several stacked)
Either from the debug console, or by typing/adding a line/command in your test and execute it (I usually build tests cases this way, with a shortcut to execute selected/highlighted lines).
DataDriven is exactly what I needed, this is really cool once you understand how it works. Thanks a lot! It can even work with libreoffice (eg with csv), or be extended to work with databases etc… Perfect.
That was a bit less successful:
the most promising solution (Robotcorder) prints now a message " This extension is no longer available because it doesn’t follow best practices for Chrome extensions. Learn more"… and since the github repo is archived, I doubt it will be any better soon (It is a quite important risk when a project is split among many small packages, developers often tend to stop supporting them when they don’t need RF anymore…).
Same story with " xPath 2 & Robot framework commands".
Same story with " Selenium Page Object Generator"
Page Modeller does not really record actions in live + generate script, instead it allows me to get the selectors for any element, but then I need to manually write how I want to interact with them etc, so in a sense it is only a bit more helpful than the manual method.
RF recorder was a bit better, but it uses syntax for the Selenium Library and is anyway not open source for what I can see so, which is a major issue for me as it seems to be a not very serious project (no web page).
And that’s it for chromium tools. If you have anything else in mind please let me know.
Instead I found a library-agnostic way to “”“record”“”: in chrome/firefox, openning dev console (F12) + after inspecting an html element (top left button), you can select it and left click > copy css/xpath: both css selector and xpath selectors are supported by the browser library. Not ideal but better than nothing.
Other question
Speaking of helpful functionalities, here are a few more ones:
the tasks I want to write are done by some admin accounts, but I don’t want to write the password in any file (including bash/… history). Is there a way to interactively prompt the user at the beginning of a test to get the password? EDIT: seems to be the solution https://robotframework.org/robotframework/latest/libraries/Dialogs.html
a bit more involved: is there a GUI (website) that can be used, e.g. to delegate some tasks to remote users, allowing them to provide their own inputs to the tasks? I guess I can code some small flask server calling python RobotFramework code, but people that use RobotFramework may not know much about writing websites.
Tbh, I tried Selenium IDE a while ago, but my main use is Chrome DevTools and DOM inspection.
It requires a bit of effort in the beginning, but if you go for example on a page objet model structure for your project (create .resource files with your centralized variables), there a point where building your tests cases will be like assembling legos
About input variables with dialogs, I’ll let pros answer (maybe @damies13 has hints?) as I didn’t manage to have dialog library working on my projects (due to threads issues and tkinter).
But I have same id/pwd issues in my structure (no write/record /share or source control push) so I read them from an encrypted file, and inject them as environmental variables in VsCode at startup. This ensure better security and avoid copy/paste at each run.
Last point could be done in many many ways… You could indeed build a small interface, then get variables towards robot variables -v
As an example I have a team that needs to star tests, have no access to pwd etc… So they have a simple Google form with choices and send to start the tests.
Yeah that was the one I played with before, worked well when I tried it, but that was years ago, seems it’s not being maintained any more Honestly I don’t really use record method, and I don’t think many do as it’s easy to just inspect the html for the id’s and call the RF keywords.
Since @Snooz82 has on the linked issue - Client Challenge - might not be explicit good option for this but at least the readme says:
Suppressing encrypted Text from Logs
All Data that is decrypted by CryptoLibrary is replaced in the log by *** This works always and can not be disabled. No need to use special keywords for this.
Regarding browser extensions/tooling and XPath/CSS selectors, this old post of mine may be useful for you and covers cross browser approach:
and regarding page object model, if you ever want to consider setting that up as RF resource files rather than native python (or Java, or other language) code, this is a good example template reference, though it isn’t tooling in and of itself: