Robotframework with Docker and AutoIt

Hello,

On my project, we try to put RF on a PIC (Continuous Integration Plateform).
The developers encounter many problem (Make RF work on Linux environment etc…) and one of this problem is : How can we use Autoit library on Linux ? Because this library needs an .exe installation.
Do you have an idea ? Do you know an alternative library which make the same work than Autoit without installing an .exe program ?

If you also have a tuto to install RF on a Linux environment, I take it :slight_smile:

Thnaks a lot !

Hi John,

If you are using AutoIt, is your application a windows desktop app? you are correct that AutoIt is a windows only solution so I while you may get the .exe to run on linux with wine it would not interact with any non windows applications so may be of little use.

What may be a better solution for you is to use a windows container, though these base images probably won’t have python let alone robot framework so you will need to configure an image that installs those things on this base.

The other option, if your application is not windows specific would be to use a different library that can automate your gui app. I had some success with SikuliLibrary, there was another library that might also work but I forgot it’s name.

Hope this was helpful,

Dave.

Hello Dave,

Indeed, the idea to use a Windows container has been proposed by a developer.
It seems to be the best solution to avoid many problems.

Thanks a lot ! I’m going to tell the information to my team.

Hi,

before taking a windows container, perhaps some more investigation is neeed.
You only wrote that you want to use AutoIT - but more importantly, what kind of application are you going to test?
/Simon

Hello Simon,

A simple test (opening an URL) works now on Docker.
Concerning Autoit, I think that we will change this library to use the Choose file keyword (I will put the file directly on the server). Thus, we don’t need to interact with windows to choose a file.

I think you may want to clarify what you did before vs what you plan to do now, with respect to choosing a file to “upload” I assume. And sounds like this involves browser, so also would be good to indicate what browser(s) you are targettng.

Some things to note:

  • unless things changed, Windows docker container does not support GUI, it’s only for Windows CLI, so AutoIt wouldn’t be useful in that case either.

  • Selenium library should have keyword to upload a file I believe, so technically shouldn’t need AutoIt for that, depending on browser, and/or implementation of the uploader on the website. And just wanted to mention, if the Selenium library works like the native Selenium bindings (in python and/or Java), the file upload (or SendKeys) action for the file path, is with respect to the Selenium client machine that is running the code. If the Selenium browser node is not local but on a Selenium grid (or RemoteWebDriver) setup, the file will be transparently uploaded/sent to the node from local test execution machine (i.e. the docker container?) before the browser then uploads it to the actual website.