Robot framework GUI Testing - object oriented or image based?

Hello, i have a quick question. How does the GUI Testing of Robot Framework work?

Is it image based or object oriented? Ive read somewhere, that the GUI Testing in robot framework is done with a librari of “sikuli”, which uses image based testing. is this true?

and also, is there a way to use object oriented gui testing?

Robot Framework is a generic testing framework, then it uses specialized libraries to test on each domain. Like you mentioned, Sikuli is an image recognition framework, and we use a library which is a wrapper for the original.
When you ask for object based GUI testing, you must refer which specific Domain you want.
For example we have SwingLibrary for JAVA Swing apps, and I “think” there is the White Library for Windows C# apps.

I personally prefer the User Centric approach on testing, where the testing framework is operating in a Black Box mode, not knowing anything about the components that it is made. This is the same way an User would use the software. This is also what makes me prefer using SeleniumLibrary over Browser library, when testing Web applications.

If you want a more clear answer, then, please be more specific on what problem you want to solve.

Hello, thank you for your reply! We have a desktop application (java) and plan to build a test automation for it. Im curious if its possible to do it with robot framework. I also want to use the black box method, as you mentioned. but you said for web applications… and also mentioned seleniumLibrary which is only for web applications… but we have a desktop application (which runs on a linux. the application itself is java application)

can i use robot framework?

My advice would be to use Sikuli, because it is independent from Java. See the Sikuli Robot Framework Library | robotframework-SikuliLibrary and do a small PoC.

It would be good to try SikuliX first, to be familiar with the workflow. New version allows to use Robot Framework from its IDE.

The problem with libraries for Java is that they are based on Jython (based on Python 2.7), so they are outdated.
These are two that I know of: