Missing super-useful functionalities? (live mode, record, execute from spreadsheet…)

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?

Hi Tobias,

Well, I can’t answer all your questions, but these might help:

Search the chrome web store for robotframework and you’ll find several plug-ins that can help with this.

Maybe this is what you’re after?: DataDriven Tests | ROBOT FRAMEWORK

Dave.

While not exactly what you asked for, I believe the combination of VSCode with robotcode will get you as close as possible.

1 Like

Hi,

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).

Regards
Charlie

1 Like

Thanks a lot for the answers, it helps a lot! (I spent some time to answer because I first wanted to test them all before answering)

Regarding the debug mode, VsCode + RobotCode works nicely indeed, thanks! I also found in the meantime Client Challenge and GitHub - xyb/robotframework-debuglibrary: A debug library for RobotFramework, which can be used as an interactive shell(REPL) also. but I’ve not tried them since vscode is good enough for now.

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:

  1. 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
  2. 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.

Hi,

  • For the tools, you can give a try to this maybe:

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 :wink:

  • 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.

Hope this helps!

Regards
Charlie

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 :frowning: 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.

Maybe go stick a :+1: on this issue Support creating variables that are not logged even on TRACE level · Issue #4537 · robotframework/robotframework · GitHub to let the RF team know you’re interested in this? - Not exactly what you’re after but related.
Passwords need to be stored somewhere unless you use Dialogs Library (I see you found that)

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.

1 Like

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:

2 Likes