3. How to instruct computer, for doing Specific
Task
Shell Scripts? Coding?Shell Scripts? Coding?
4. Motivation
• Searching the web requires coming up with the
right keywords to describe an app’s GUI
element, which can be challenging.
5. If You…
× Don’t Know the Good Programming ?
× Want to avoid Repeating, Boring or Annoying
Coding ?
× Want to automate something, but don’t have an
access to its source ?
7. Sikuli is “God’s Eye”.
• A Mexican word..
• In Huichol Indian language,
“ Power of Seeing And Understanding Things
Unknown…”
8. What It Is..???
Sikuli is a visual technology to search and automate
graphical user interfaces (GUI) using images
(screenshots). The first release of Sikuli contains Sikuli
Script, a visual scripting API for Python, and Sikuli IDE, an
integrated development environment for writing visual
scripts with screenshots easily.
9. General Introduction
Sikuli was developed by User Interface Design Group, MIT
Comp. Sci. and Artificial Intelligence Laboratory CSAIL.
The developer behind this project are:
11. Sikuli Search
• Screenshot Search Engine
• User Interface for querying the search engine
• User Interface for adding scrrenshots with custom
annotations to the index.
• Screenshots can be indexed and searched efficiently
using an inverted index that contains entry for each
visual word.
• GUI often contain text, we can index their screenshots
based on embedded text extracted by OCR.
12. Sikuli Script
• Sikuli Script is the new way to program anything on your
computers.
• It automates anything you see on the screen without
internal API’s support. You can programmatically control
webpage, a desktop application running on
Windows/Linux/Mac OS X, or even an iphone
application running in an emulator.
13. Structureof Sikuli Script
SikuliX is a directory.
Python source file (.py):
o Represents automation workflow and test cases.
Image file (.png):
o All image files used by the source file.
15. Summary
Readability of test cases.
Platform Independent.
Separation of design and implementation.
Works on any GUI that can be displayed on
Windows/Linux/Mac OS.