code.ivysaur.me

Cardboard Sikuli

IDE and scripting platform to automate and control desktop applications, for GUI application testing or robotic process automation (RPA).

This is a clean-room implementation of the Sikuli application based on RobotGo, Goja, and MIQT.

  • OpenCV image matching
  • Desktop IDE with screen grabber based on Qt 6
  • It uses Javascript as the scripting language instead of Python 2

Compiling

Tested on Debian 12

apt install libopencv-dev qt6-base-dev build-essential golang-go
go build -ldflags '-s -w'

See also

Scripting reference

  • SIKULI_WAIT - Global variable to set the default refresh rate between operations (milliseconds). Default = 200
  • SIKULI_TIMEOUT - Global variable to set the default time to wait for an image to appear (milliseconds). Default = 3000
  • SIKULI_THRESHOLD - Global variable to set the image match accuracy threshold (floating point from 0 to 1). Default = 0.9
  • ClickAt(filepath, offset_x, offset_y) - Wait for image to appear, then move the mouse and click it at the specified offset. Throws a Javascript error if no match is found.