robotframework-imagehorizonlibrary 1.0
Cross-platform Robot Framework library for GUI automation based on image recognition
License: MIT
Keywords: imagerecognition gui robotframework testing testautomation acceptancetesting atdd bdd

===================
ImageHorizonLibrary
===================

This Robot Framework library provides the facilities to automate GUIs based on
image recognition similar to Sikuli. This library wraps pyautogui_ to achieve
this.

For non pixel perfect matches, there is a feature called `confidence level`
that comes with a dependency OpenCV (python package: `opencv-python`).
This functionality is optional - you are not required to
install `opencv-python` package if you do not use confidence level.

Keyword documentation
---------------------

`Keyword Documentation`__

__ http://eficode.github.io/robotframework-imagehorizonlibrary/doc/ImageHorizonLibrary.html

Travis CI
---------

`Travis CI`__

__ https://travis-ci.org/Eficode/robotframework-imagehorizonlibrary/


.. image:: https://travis-ci.org/Eficode/robotframework-imagehorizonlibrary.svg?branch=master
    :target: https://travis-ci.org/Eficode/robotframework-imagehorizonlibrary


Prerequisites
-------------

- `Python 3.x`
- pip_ for easy installation
- pyautogui_ and `it's prerequisites`_
- `Robot Framework`_

On Ubuntu, you need to take `special measures`_ to make the screenshot
functionality to work correctly. The keyboard functions might not work on
Ubuntu when run in VirtualBox on Windows.

Development
'''''''''''

- mock__

__ http://www.voidspace.org.uk/python/mock/

Installation
------------

If you have pip_, installation is straightforward:

::

    $ pip install robotframework-imagehorizonlibrary

This will automatically install dependencies as well as their dependencies.


Windows
'''''''

ImageHorizonLibrary should work on Windows "out-of-the-box". Just run the
commands above to install it.

OSX
'''

*NOTICE*
ImageHorizonLibrary does not currently work with XCode v.8. Please use a previous version.

You additionally need to install these for pyautogui_:

::

    $ pip install pyobjc-core pyobjc


For these, you need to install XCode_

Linux
'''''

You additionally need to install these for pyautogui_:

::

    $ sudo apt-get install python-dev python-xlib


You might also need, depending on your Python distribution, to install:

::

    $ sudo apt-get install python-tk

If you are using virtualenv, you must install python-xlib_ manually to the
virtual environment for pyautogui_:

- `Fetch the source distribution`_
- Install with:

::

    $ pip install python-xlib-<latest version>.tar.gz

Running unit tests
------------------

::

    $ python tests/utest/run_tests.py [verbosity=2]


Running acceptance tests
------------------------

Additionally to unit test dependencies, you also need OpenCV, Eel, scrot and Chrome/Chromium browser.
OpenCV is used because this tests are testing also confidence level.
Browser is used by Eel for cross-platform GUI demo application.
scrot is used for capturing screenshots.

::
    $ pip install opencv-python eel


To run tests, run this command:

::

    $ python tests/atest/run_tests.py


Updating Docs
-------------

To regenerate documentation (`doc/ImageHorizonLibrary.html`), use this command:

::

    $ python -m robot.libdoc -P ./src ImageHorizonLibrary doc/ImageHorizonLibrary.html


.. _Python 3.x: http://python.org
.. _pip: https://pypi.python.org/pypi/pip
.. _pyautogui: https://github.com/asweigart/pyautogui
.. _it's prerequisites: https://pyautogui.readthedocs.org/en/latest/install.html
.. _Robot Framework: http://robotframework.org
.. _double all coordinates: https://github.com/asweigart/pyautogui/issues/33
.. _special measures: https://pyautogui.readthedocs.org/en/latest/screenshot.html#special-notes-about-ubuntu
.. _XCode: https://developer.apple.com/xcode/downloads/
.. _Fetch the source distribution:
.. _python-xlib: http://sourceforge.net/projects/python-xlib/files/