I know this thread gets resurrected from time to time, and it’s curious how tools like Ranorex dont get a mention. It’s quite an expensive license, but it works quite well. It has a codeless mode, but that quite pants for larger apps, but it is worth a look if you really are stuck.
However I wanted to just pitch an alternative architectural idea. What if you have an app that runs on many many platforms, and is cross compiled, do you limit yourself to one tool that runs on all supported O/S or do you take a chance? What if your app uses a GUI framework that lets it be built on all platforms. What if that framework means your tests on all platforms are pretty much identical looking. Now I get some people saying, that won’t work on mobiles and tablets, true, that won’t work, but if all you do is cover desktops using a tool that hooks into your app’s presentation layer directly, you can now automate the linux flavours, the macos apps and windows app. Yes, you have to write your own, but it is worth it. It’s a lot easier than you think if you do it on day one, and as you can imagine it has some other early advantages. How many apps out there wrote/write automation GUI hooks directly into their native app?