So not sure which better forum to post this, here or Community so starting here.
There was nice amount of content about automating Windows applications in Community. And in that space, WinAppDriver is often mentioned (GitHub - microsoft/WinAppDriver: Windows Application Driver), along with Sikuli, Ranorex and so on.
What about using WinAppDriver as a RPA (robotic process automation)? And specifically in that use case you want it to be running in the background or otherwise isolated environment, and the lighter the better. Cheaper version of UiPath so to speak. (There is also Power Automate from Microsoft that I need to look into).
As I am not familiar with WinAppDriver I thought maybe we have collective knowledge about this question here?
This question always depends so heavily on the platform and the business value. RPA vendors will use Tester tools, but almost never the other way around, and with good reason, change detection. We know that cheaper almost never scales well, and really scaling big is the real driver for any RPA business use-case. RPA tools for example tend to target a specific platform only, if platform matters to you, design an experiment that covers your business corner cases first. The only way you will know is if you run an experiment yourself, good luck with finding winAppDriver users who will talk to you. Unlike web apps, this area is a very closed shop. Myself, I may be heading into some Flutter driver territory, for desktop.
Do let us know how you get along with your RPA project.
On this topic, why the focus on WinAppDriver? Because it came from Microsoft? Or because it has Selenium/WebDriver protocol support?
Because Sikuli, Ranorex, and WinAppDriver alternatives are also good options to consider for RPA.
If WebDriver API compatibility is of concern, there are WinAppDriver alternatives that have such compatibility, and there are other desktop GUI automation tools with WebDriver compatibility, it’s not just WinAppDriver, though WinAppDriver may be the most popular option. You just have to look around for the alternatives. For example, one not minor not well known option GitHub - daluu/AutoItDriverServer: AutoIt through WebDriver or a webdriver-compatible server for AutoIt
I’m interested in your findings. I have been looking for a tool to automate a desktop app for many years now and have only found a couple that work for us. Unfortunately, the free tools such as WinAppDriver keep being raised, we have tried this option a few times but have had no luck. I have been able to automate using power automate but their main down fall is you can create a library of variables that can be used repeatedly. This means maintenace is a nightmare.
@rominanz what didn’t work with WinAppDriver or how didn’t it work for you?
Have you tried image recognization based tools like Sikuli? Those are usually a good last resort if you can locate elements by identifiers to perform actions against the UI.
Thanks. True, might be the testing tools will not work for RPA type of case. Though the potential in testing tool in RPA use case would be like what you mention RPA tools are very platform specific. So in case you have something in-house developed business process application that you’d want to automate for end users daily flows, many RPA probably drop out of the game.
Thanks David, WinAppDriver just came first to my mind as potential non RPA for RPA purpose tool due to it’s Webdriver background. Not that it is in anyway requirement from the outset. What has happened since posting here and forwarding responses to colleague, the Windows Power Automate actually at the moment is getting extra look if that could be solution. Again, not that this has any Microsoft connection.
Sikuli definitely popped into my radar too thanks to the previous message threads on the MoT forums, which is what motivated me to take the chance to ask this non testing and quality related thread in the first place.
@rominanz if you happen to have time and see these, looking forward for your insights. Cheers!
Sikuli would be a whole lot better if it had WebDriver API compatibility, either natively or with 3rd party tooling. I briefly looked into myself but never got around to fully implementing it.
There are various projects for Sikuli that provide some form or remote access like WebDriver but none that are WebDriver JSONWireProtocol compliant to my knowledge. Don’t know if things have changed since I last checked up on Sikuli.
I will have a look at Sikuli. The biggest issue we have is, our product is complex with many tools and dialog windows. Because it’s a legacy product most of the elements/windows haven’t got unique names. I have found a tool that can do automation for us but there is a cost and of course everyone wants automation for free. Winappdriver wasn’t able to cope with our application due to the complexities and lack of unique names.
Winappdriver wasn’t able to cope with our application due to the complexities and lack of unique names.
Understandable.
With the XPath approach for WinAppDriver (and similar tools), still not able to uniquely identify elements using a more complex string than a basic element ID, name, or class? That would be unfortunate. Or is that possible but just that it’s too much maintenance overhead and complexity in defining complex XPaths to define the elements?
Just asking because on the web automation side, you can use advanced XPath expressions that can uniquely (yet human interpretably/readabily) identify elements. It just takes some skill to do it in a way that is both descriptive to the human reader and that works for the machine to identify the element, and while it may be slower than CSS is some cases, such specially crafted expressions will handle cases of harder to define elements where the developers didn’t give much thought into identifying the elements for the automation team.
But I’m not aware of how well that landscape is in the desktop automation world with WinAppDriver and like tools that try to adapt the XPath (and CSS selectors) approach from web to desktop. If it works equally well, it would be a useful tool.
I don’t remember if we tried using xpath, I will look into this further. In the past the tool that I found worked for us required a screenshot and you manually outlined and named the elements.