Citrix Automation via Robot Framework


We have an application which is accessible via Citrix. Can we use Robot Framework?If yes, can anyone share the steps please.Tnx

Hi Sayom,

There are two approaches I can think of that you could take, both have different implications:

  1. Run robot in the citrix session
  2. run robot on the machine that is running the citrix client

Option 1 - gives you the most options on which libraries you can use to drive the application, given that citrix is a windows solution, libraries like flaui and AutoItLibrary could be used to drive the windows applications directly so really this is the same as if you were running robot and the application on a desktop pc. The problem with this option is that you will need to install python, robot framework and libraries on the citrix server, not sure if this is an issue?

Option 2 - Your only option here is SikuliLibrary, the pro of this option is nothing gets installed on the citrix server, the downside is that SikuliLibrary drives the UI via image recognition, I’ve not used it personally with the citrix ica client, but I have used SikuliLibrary quite successfully with an RDP client witch is a very similar protocol and from Sikuli’s perspective would be the same. With this protocol you only have image matching for finding fields and mouse clicks and key presses, while there is an ocr option i’m not sure how well it will work with the ICA client.

I hope this helps,



some points from my side: my favourite library for testing image-based is ImageHorizon. It is based on pyautogui and OpenCV. Testing with Sikuli on the other hand requires jrobotremoteserver and Java. Consider this footprint.

As @damies13 already wrote, you can execute the test inside Citrix or through the session. It depends on the question what you want to test. If the end user experience with Citrix should be tested, Robot should act like a user and therefore also use Citrix.

Another important (and often neglected) thing to remember is that Citrix (as well as RDP!) can show a compressed picture of the session, depeending on network bandwith etc.
Even if you do not see artifacts on the screen, there might be differences. Double check this because it can drive you crazy. 1% pixel deviation are enough to make an image based assertion fail.

Tweaking with the confidence level should be the very last step imho.

Best regards,

1 Like

Can you please share any code examples or any codebase on how to implement this please