[1.0.1] Sikuli integration Robot framework --- use sikuli-java.jar

Asked by Greg

Hello RaiMan.

I hope you can help me :)
Currently I try to follow the instructions on http://blog.mykhailo.com/2011/02/how-to-sikuli-and-robot-framework.html.

I managed to run a sikuli script from line command and now now I'm blocked with the integration with Robot Framework.

Here is the information on my system:
- Windows 7 64 bits
- Java runtime environment : JAVA_VERSION="1.7.0"
- Jython 2.5.1 (I tried also with 2.5.3)
- Python 2.7.6
- Robot Framework 2.5.5 (Itried also with 2.8.1)
- SikuliX Setup Build: 1.0.1 12NOV2013120000

My robottest.bat looks like the following:
@echo off
set sikuli_jar=C:\work\calc_step1\sikuli-script.jar
java -cp "%sikuli_jar%" ^
 -Dpython.path="robotframework-2.5.5.jar\Lib" ^
    -jar robotframework-2.5.5.jar ^
 --pythonpath="%sikuli_jar%/Lib";calc.sikuli ^
    --outputdir=results ^
    --loglevel=TRACE ^
    %*

When I run it, I get following message:
C:\work\calc_step1>robottest.bat robot_suite\verify_operations.txt
[ ERROR ] Invalid syntax in file 'c:\work\calc_step1\robot_suite\verify_operatio
ns.txt' in table 'Settings': Importing test library 'calc.Calculator' failed: Im
portError: No module named calc
PYTHONPATH: ['C:\\work\\calc_step1\\robotframework-2.5.5.jar\\Lib\\robot\\librar
ies', 'C:\\work\\calc_step1\\robotframework-2.5.5.jar\\Lib', 'C:\\work\\calc_ste
p1\\Lib', 'C:\\work\\calc_step1\\robotframework-2.5.5.jar\\Lib', '__classpath__'
, '__pyclasspath__/', '.']
CLASSPATH: robotframework-2.5.5.jar
Traceback (most recent call last):
  File "C:\work\calc_step1\robotframework-2.5.5.jar\Lib\robot\utils\importing$py
.class", line 94, in _import
==============================================================================
Verify Operations
==============================================================================
Verify that 2 + 2 = 4 | FAIL |
No keyword with name 'Start App' found.
------------------------------------------------------------------------------
Verify Operations | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
Output: c:\work\calc_step1\results\output.xml
Report: c:\work\calc_step1\results\report.html
Log: c:\work\calc_step1\results\log.html
C:\work\calc_step1>

I was that someone got the same issue but I didn't see well how it was resolved.
I tried a lot of things...I think there may be an issue with the version of Jython or Python or something with the classpath.

So thanks to help me .

See you

Grégory

Question information

Language:
English Edit question
Status:
Solved
For:
SikuliX Edit question
Assignee:
No assignee Edit question
Solved by:
RaiMan
Solved:
Last query:
Last reply:
Revision history for this message
RaiMan (raimund-hocke) said :
#1

When using RFW, you generally have to use sikuli-java.jar (1.0.1) or sikulixapi.jar (1.1.0), since sikuli-ide.jar or sikuli-script.jar (1.0.1) contain a Jython 2.5.4 (1.1.0 sikulix.jar contains Jython 2.7), which conflicts on sys.path with the used external Jython by RFW.

So with 1.0.1 run setup again and select option 4 to get a sikuli-java.jar.

More info:
https://github.com/RaiMan/SikuliX-API/wiki/Usage-in-Java-programming

I will contact Mike and ask him to update his blogpost, when I am ready with version 1.1.0.

Revision history for this message
Greg (gregauvray) said :
#2

I setup again 1.0.1 and got sikuli-java.jar
But now when i run testrun.bat I got the folowing message : no main manifest attribute, in sikuli-java.jar

Revision history for this message
Greg (gregauvray) said :
#3

I added 'Main-Class: org.sikuli.script.SikuliX' in 'MANIFEST.MF', and
then run 'java -jar sikuli-java.jar -r test.sikuli' from cmd.

and I got the following exception :

C:\work\calc_step1>runtest.bat
Exception in thread "main" java.util.ServiceConfigurationError: org.sikuli.basic
s.IScriptRunner: Provider org.sikuli.scriptrunner.JythonScriptRunner not found
        at java.util.ServiceLoader.fail(Unknown Source)
        at java.util.ServiceLoader.access$300(Unknown Source)
        at java.util.ServiceLoader$LazyIterator.next(Unknown Source)
        at java.util.ServiceLoader$1.next(Unknown Source)
        at org.sikuli.basics.SikuliX.getScriptRunner(SikuliX.java:193)
        at org.sikuli.basics.FileManager.getScriptFile(FileManager.java:566)
        at org.sikuli.basics.SikuliScript.main(SikuliScript.java:171)
        at org.sikuli.script.SikuliX.main(SikuliX.java:50)

Revision history for this message
RaiMan (raimund-hocke) said :
#4

sikuli-java.jar is not runnable and cannot run scripts, because it does not contain Jython. But that's the intention ;-)

To run your script, you have to use the external Jython that you should have and put sikuli-java.jar on the class path.

Revision history for this message
Greg (gregauvray) said :
#5

I'm a little lost,
So I come back to robottest.bat.
 I removed sikuli-script.jar and put sikuli-java.jar instead
I got the Lib library from sikuli-java.jar

But I have the same error as before when I used sikuli-script.jar
I added sikuli-java.jar in path

C:\work\calc_step1>robottest.bat robot_suite\verify_operations.txt
[ ERROR ] Invalid syntax in file 'c:\work\calc_step1\robot_suite\verify_operatio
ns.txt' in table 'Settings': Importing test library 'calc.Calculator' failed: Im
portError: No module named calc
PYTHONPATH: ['C:\\work\\calc_step1\\robotframework-2.5.5.jar\\Lib\\robot\\librar
ies', 'C:\\work\\calc_step1\\robotframework-2.5.5.jar\\Lib', 'C:\\work\\calc_ste
p1\\Lib', 'C:\\work\\calc_step1\\robotframework-2.5.5.jar\\Lib', '__classpath__'
, '__pyclasspath__/', '.']
CLASSPATH: robotframework-2.5.5.jar
Traceback (most recent call last):
  File "C:\work\calc_step1\robotframework-2.5.5.jar\Lib\robot\utils\importing$py
.class", line 94, in _import
==============================================================================
Verify Operations
==============================================================================
Verify that 2 + 2 = 4 | FAIL |
No keyword with name 'Start App' found.
------------------------------------------------------------------------------
Verify Operations | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
Output: c:\work\calc_step1\results\output.xml
Report: c:\work\calc_step1\results\report.html
Log: c:\work\calc_step1\results\log.html

in fact, usage of sikuli-script.jar instead of sikuli-java.jar doesn't seem to change something

Here what I see in path (environment variable) , maybe it can help :
C:\Program Files (x86)\Java\jre7\bin;C:\Program Files (x86)\Altiris\Software Virtualization Agent\;C:\Program Files (x86)\MKS\IntegrityClient\bin\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\MKS\Toolkit\mksnt\;C:\Program Files (x86)\MKS\Toolkit\mksnt;C:\Python27\;C:\Python27\Scripts;C:\Program Files\TortoiseHg\;c:\selenium;c:\RobotFramework\libs;c:\Validation\Tools\Jython251;c:\Validation\Tools\Jython251\bin;C:\work\calc_step1\Lib\sikuli;C:\work\calc_step1\libs;C:\work\calc_step1\calc.sikuli;C:\work\calc_step1\sikuli-java.jar

Revision history for this message
Greg (gregauvray) said :
#6

I 'm currently trying something else.

From robotsuite_verifyoperations.txt the library was called like this :
*** Settings ***
Library calc.Calculator WITH NAME Calculator

and I got the previous error :
[ ERROR ] Invalid syntax in file 'c:\work\calc_step1\robot_suite\verify_operatio
ns.txt' in table 'Settings': Importing test library 'calc.Calculator' failed: Im
portError: No module named calc

Now i put the path of calc.py in verify_operations.txt :
*** Settings ***
Library C:/work/calc_step1/calc.sikuli/calc.py

and I got foolowing error :
C:\work\calc_step1>robottest.bat robot_suite\verify_operations.txt
[ ERROR ] Invalid syntax in file 'c:\work\calc_step1\robot_suite\verify_operatio
ns.txt' in table 'Settings': Importing test library 'calc' failed: ImportError:
No module named sikuli
PYTHONPATH: [u'c:\\work\\calc_step1\\calc.sikuli', 'C:\\work\\calc_step1\\robotf
ramework-2.5.5.jar\\Lib\\robot\\libraries', 'C:\\work\\calc_step1\\robotframewor
k-2.5.5.jar\\Lib', 'C:\\work\\calc_step1\\Lib', 'C:\\work\\calc_step1\\robotfram
ework-2.5.5.jar\\Lib', '__classpath__', '__pyclasspath__/', '.']
CLASSPATH: robotframework-2.5.5.jar
Traceback (most recent call last):
  File "C:\work\calc_step1\robotframework-2.5.5.jar\Lib\robot\utils\importing$py
.class", line 94, in _import
  File "c:\work\calc_step1\calc.sikuli\calc.py", line 2, in <module>
    from sikuli.Sikuli import *
  File "C:\work\calc_step1\Lib\sikuli\__init__.py", line 5, in <module>
    from org.sikuli.basics import Debug

But at least the calc.py module is found

Revision history for this message
RaiMan (raimund-hocke) said :
#7

according to the RFW docs this should do the job:

java -Xbootclasspath/a:<path-to-…>sikuli-java.jar -jar robotframework-2.8.5.jar run <yourtest>

BTW: the Windows system path has nothing to do with that.
none of these should have any effect and hence do not make sense:
C:\work\calc_step1\Lib\sikuli;C:\work\calc_step1\libs;C:\work\calc_step1\calc.sikuli;C:\work\calc_step1\sikuli-java.jar

Revision history for this message
Greg (gregauvray) said :
#8

Now in my robottest.bat, I put this :
@echo off
java -Xbootclasspath/a:C:\work\calc_step1\sikuli-java.jar -jar robotframework-2.5.5.jar run robot_suite\verify_operations.txt

I removed what it is not needed in path environment variable

In verify_opearations.txt I kept :
*** Settings ***
Library C:/work/calc_step1/calc.sikuli/calc.py

*** Test Cases ***
Verify that 2 + 2 = 4
    Start App
    Verify App
    Perform Action 2 + 2
    Verify Result 4

when I launch robottest.bat, it goes further :
C:\work\calc_step1>robottest.bat
==============================================================================
Verify Operations
==============================================================================
[ ERROR ] Invalid syntax in file 'c:\work\calc_step1\robot_suite\verify_operatio
ns.txt' in table 'Settings': Importing test library 'calc' failed: TypeError: lo
g(): 1st arg can't be coerced to String
PYTHONPATH: [u'c:\\work\\calc_step1\\calc.sikuli', 'C:\\work\\calc_step1\\robotf
ramework-2.5.5.jar\\Lib\\robot\\libraries', 'C:\\work\\calc_step1\\Lib', 'C:\\wo
rk\\calc_step1\\robotframework-2.5.5.jar\\Lib', '__classpath__', '__pyclasspath_
_/', '.']
CLASSPATH: robotframework-2.5.5.jar
Traceback (most recent call last):
  File "C:\work\calc_step1\robotframework-2.5.5.jar\Lib\robot\utils\importing$py
.class", line 88, in _import
  File "C:\work\calc_step1\robotframework-2.5.5.jar\Lib\robot\utils\importing$py
.class", line 88, in _import
  File "c:\work\calc_step1\calc.sikuli\calc.py", line 2, in <module>
    from sikuli.Sikuli import *
  File "C:\work\calc_step1\Lib\sikuli\__init__.py", line 6, in <module>
    Debug.log(3,"Jython: sikuli: __init__: entering")
Verify Operations.Verify Operations

May I need to put in comment all lines begining by " Debug.log(3, " in sikuli.py and __init__.py

I try also with the last robotframework version : 2.8.5
C:\work\calc_step1>robottest.bat
C:\work\calc_step1>

Revision history for this message
RaiMan (raimund-hocke) said :
#9

--- May I need to put in comment all lines begining by " Debug.log(3, " in sikuli.py and __init__.py
surely not!!!

I will test now myself and hope to came back with the solution shortly.

Revision history for this message
Greg (gregauvray) said :
#10

I added -Dsikuli.Debug=3 to have more information when I run with robotframework 2.8.1 or 2.8.5
and I got the following message
C:\work\calc_step1>robottest.bat
[ ERROR ] Parsing 'run' failed: Data source does not exist. Maybe the verify_operations.txt is no more correct for these versions of robot framework

so currently I keep 2.5.5 version

Revision history for this message
RaiMan (raimund-hocke) said :
#11

Ok, this works for me (using variables to make it better readable:

the general java command is:
java -cp sikuli-java.jar:robotframework.jar -Dparameters org.robotframework.RobotFramework run …parameters…

where the items have to be adjusted system specific.

Nothing is needed in system path and the Lib folder need not be unpacked with SikuliX version 1.0.1+ (see below)

on Windows make a bat/cmd:
setlocal
set sikuli=<path to sikuli-java.jar>
set rfw=<path to robotframework.jar>
set clp=%sikuli%;%rfw%
java -cp "%clp%" -Dsikuli.Debug=3 org.robotframework.RobotFramework run %*
endlocal

in your .sikuli library you need the following at the beginning:
import org.sikuli.basics.SikuliXforJython # adjusts the python sys.path
from sikuli import *

--- to see the full debug output:
import org.sikuli.basics.Debug as Dbg
Dbg.setLogFile("") # Sikuli's debug messages go here: SikuliLog.txt
import org.sikuli.basics.SikuliXforJython
from sikuli import *
Debug.setUserLogFile("") # user debug messages go here: UserLog.txt
Debug.user("after sikuli has started")
for e in sys.path: Debug.user( e)

Revision history for this message
Greg (gregauvray) said :
#12

Hi RaiMan,

I try with your modifications but it is failed again. But maybe I have more information to give you due to Debug mode.

Just one thing to check before , I would like to be sure about the verify_operations.txt, so here is the content :
*** Settings ***
Library C:/work/calc_step1/calc.sikuli/calc.py

*** Test Cases ***
Verify that 2 + 2 = 4
    Start App
    Verify App
    Perform Action 2 + 2
    Verify Result 4

Now my robottest.bat looks like :
@echo off
setlocal
set sikuli=C:\work\calc_step1\sikuli-java.jar
set rfw=C:\work\calc_step1\robotframework-2.5.5.jar
set clp=%sikuli%;%rfw%
java -cp "%clp%" -Dsikuli.Debug=3 org.robotframework.RobotFramework run robot_suite\verify_operations.txt%*
endlocal

and calc.py begins with :
from __future__ import with_statement
#import org.sikuli.basics.SikuliXforJython # adjusts the python sys.path
#from sikuli import *

import org.sikuli.basics.Debug as Dbg
Dbg.setLogFile("") # Sikuli's debug messages go here: SikuliLog.txt
import org.sikuli.basics.SikuliXforJython
from sikuli import *
Debug.setUserLogFile("") # user debug messages go here: UserLog.txt
Debug.user("after sikuli has started")
for e in sys.path: Debug.user( e)

#from sikuli.Sikuli import *
addImagePath("calc.sikuli")

class Calculator(object):

I remove Lib directory too

So I launch robottest.bat and here is below the result :
C:\work\calc_step1>robottest.bat
==============================================================================
Verify Operations
==============================================================================
[ ERROR ] Invalid syntax in file 'c:\work\calc_step1\robot_suite\verify_operatio
ns.txt' in table 'Settings': Importing test library 'calc' failed: TypeError: lo
g(): 1st arg can't be coerced to String
PYTHONPATH: [u'c:\\work\\calc_step1\\calc.sikuli', 'C:\\work\\calc_step1\\robotf
ramework-2.5.5.jar\\Lib\\robot\\libraries', 'C:\\work\\calc_step1\\Lib', 'C:\\wo
rk\\calc_step1\\robotframework-2.5.5.jar\\Lib', '__classpath__', '__pyclasspath_
_/', '.', 'C:\\work\\calc_step1\\sikuli-java.jar\\Lib']
CLASSPATH: C:\work\calc_step1\sikuli-java.jar;C:\work\calc_step1\robotframework-
2.5.5.jar
Traceback (most recent call last):
  File "C:\work\calc_step1\robotframework-2.5.5.jar\Lib\robot\utils\importing$py
.class", line 88, in _import
  File "C:\work\calc_step1\robotframework-2.5.5.jar\Lib\robot\utils\importing$py
.class", line 88, in _import
  File "c:\work\calc_step1\calc.sikuli\calc.py", line 8, in <module>
    from sikuli import *
  File "C:\work\calc_step1\sikuli-java.jar\Lib\sikuli\__init__.py", line 6, in <
module>
Verify Operations.Verify Operations

and in sikuliLog.txt:
[debug] Debug: setLogFile: C:/work/calc_step1/SikuliLog.txt
[debug] SikuliXforJython: sys.path[0]: c:\work\calc_step1\calc.sikuli
[debug] SikuliXforJython: sys.path[1]: C:\work\calc_step1\robotframework-2.5.5.jar\Lib\robot\libraries
[debug] SikuliXforJython: sys.path[2]: C:\work\calc_step1\Lib
[debug] SikuliXforJython: sys.path[3]: C:\work\calc_step1\robotframework-2.5.5.jar\Lib
[debug] SikuliXforJython: sys.path[4]: __classpath__
[debug] SikuliXforJython: sys.path[5]: __pyclasspath__/
[debug] SikuliXforJython: sys.path[6]: .
[debug] SikuliXforJython: found Sikuli Jython in:
/C:/work/calc_step1/sikuli-java.jar/Lib
[debug] SikuliXforJython: Trying to add to sys.path
[debug] SikuliXforJython: new Jython path:
[debug] SikuliXforJython: sys.path[0]: c:\work\calc_step1\calc.sikuli
[debug] SikuliXforJython: sys.path[1]: C:\work\calc_step1\robotframework-2.5.5.jar\Lib\robot\libraries
[debug] SikuliXforJython: sys.path[2]: C:\work\calc_step1\Lib
[debug] SikuliXforJython: sys.path[3]: C:\work\calc_step1\robotframework-2.5.5.jar\Lib
[debug] SikuliXforJython: sys.path[4]: __classpath__
[debug] SikuliXforJython: sys.path[5]: __pyclasspath__/
[debug] SikuliXforJython: sys.path[6]: .
[debug] SikuliXforJython: sys.path[7]: /C:/work/calc_step1/sikuli-java.jar/Lib
[debug] ResourceLoaderBasic: SikuliX Package Build: 1.0.1 12SEP2013135849

Then I tried also with robotframework-2.8.5.jar and it goes further (according to sikuliLog.txt. It enters in __init__.py:
[debug] Debug: setLogFile: C:/work/calc_step1/SikuliLog.txt
[debug] SikuliXforJython: sys.path[0]: C:\work\calc_step1\calc.sikuli
[debug] SikuliXforJython: sys.path[1]: C:\work\calc_step1\robotframework-2.8.5.jar\Lib\robot\libraries
[debug] SikuliXforJython: sys.path[2]: C:\work\calc_step1\robotframework-2.8.5.jar\Lib
[debug] SikuliXforJython: sys.path[3]: C:\work\calc_step1\Lib
[debug] SikuliXforJython: sys.path[4]: __classpath__
[debug] SikuliXforJython: sys.path[5]: __pyclasspath__/
[debug] SikuliXforJython: sys.path[6]: .
[debug] SikuliXforJython: sys.path[7]: C:\work\calc_step1
[debug] SikuliXforJython: found Sikuli Jython in:
/C:/work/calc_step1/sikuli-java.jar/Lib
[debug] SikuliXforJython: Trying to add to sys.path
[debug] SikuliXforJython: new Jython path:
[debug] SikuliXforJython: sys.path[0]: C:\work\calc_step1\calc.sikuli
[debug] SikuliXforJython: sys.path[1]: C:\work\calc_step1\robotframework-2.8.5.jar\Lib\robot\libraries
[debug] SikuliXforJython: sys.path[2]: C:\work\calc_step1\robotframework-2.8.5.jar\Lib
[debug] SikuliXforJython: sys.path[3]: C:\work\calc_step1\Lib
[debug] SikuliXforJython: sys.path[4]: __classpath__
[debug] SikuliXforJython: sys.path[5]: __pyclasspath__/
[debug] SikuliXforJython: sys.path[6]: .
[debug] SikuliXforJython: sys.path[7]: C:\work\calc_step1
[debug] SikuliXforJython: sys.path[8]: /C:/work/calc_step1/sikuli-java.jar/Lib
[debug] ResourceLoaderBasic: SikuliX Package Build: 1.0.1 12SEP2013135849
[debug] Jython: sikuli: __init__: entering
[debug] Jython: sikuli: Sikuli: entering
[debug] Jython: sikuli: Sikuli: constants
[debug] Jython: sikuli: Sikuli: import Region
[debug] Jython: sikuli: Sikuli: import Screen
[debug] Jython: sikuli: Sikuli: Env.addHotkey
[debug] Jython: sikuli: Sikuli: import Match
[debug] Jython: sikuli: Sikuli: import Pattern
[debug] Jython: sikuli: Sikuli: import Location
[debug] Jython: sikuli: Sikuli: import ScreenUnion
[debug] Jython: sikuli: Sikuli: import Finder
[debug] ResourceLoaderBasic: check: we are running on arch: x86
[debug] ResourceLoaderBasic: check: using Java at: C:/Program Files (x86)/Java/jre7/
[debug] ResourceLoaderBasic: check: Exists libs folder at location of jar? YES: C:/work/calc_step1/
[debug] ResourceLoaderBasic: checkLibsDir: C:/work/calc_step1/libs
[error] ResourceLoaderBasic: checkLibsDir: libs dir is not on system path: C:\work\calc_step1\libs
[action] ResourceLoaderBasic: checkLibsDir: Please wait! Trying to add it to user's path
[debug] ResourceLoaderBasic: runcmd: reg QUERY HKCU
[info] runcmd: reg QUERY HKCU
[debug] ResourceLoaderBasic: runcmd: reg QUERY HKEY_CURRENT_USER\Environment /v PATH
[info] runcmd: reg QUERY HKEY_CURRENT_USER\Environment /v PATH
[debug] ResourceLoaderBasic: checkLibsDir: current:(HKEY_CURRENT_USER\Environment PATH): C:\work\calc_step1\libs
[error] ResourceLoaderBasic: checkLibsDir: Logout and Login again! (Since libs folder is in user's path, but not activated)
[error] Terminating SikuliX after a fatal error! Sorry, but it makes no sense to continue!
If you do not have any idea about the error cause or solution, run again
with a Debug level of 3. You might paste the output to the Q&A board.
[debug] SikuliXFinal: cleanUp: 0

I don't understand why I have this line :
[debug] SikuliXforJython: sys.path[3]: C:\work\calc_step1\Lib
because I remove the Lib directory

Revision history for this message
RaiMan (raimund-hocke) said :
#13

ok, nearly there:
--- I don't understand why I have this line :
This is standard behavior, just ignore it (it is no problem, if it does not exist - and it should not exist!)

… and then just do what is said:
Logout and Login again!
with version 1.0.1 you still have to restart your session/machine after the first usage of the sikuli…-jars.
This is fixed in 1.1.0

I recommend, to go with 2.8.5, since I will use that too (… and will add an option to auto-setup), so I could help you easier.

Revision history for this message
Greg (gregauvray) said :
#14

Yes sorry, I've just been thinking to log out/ log in and it is better ...
So with robotframework-2.8.5.jar here is now the result :

[debug] Debug: setLogFile: C:/work/calc_step1/SikuliLog.txt
[debug] SikuliXforJython: sys.path[0]: C:\work\calc_step1\calc.sikuli
[debug] SikuliXforJython: sys.path[1]: C:\work\calc_step1\robotframework-2.8.5.jar\Lib\robot\libraries
[debug] SikuliXforJython: sys.path[2]: C:\work\calc_step1\robotframework-2.8.5.jar\Lib
[debug] SikuliXforJython: sys.path[3]: C:\work\calc_step1\Lib
[debug] SikuliXforJython: sys.path[4]: __classpath__
[debug] SikuliXforJython: sys.path[5]: __pyclasspath__/
[debug] SikuliXforJython: sys.path[6]: .
[debug] SikuliXforJython: sys.path[7]: C:\work\calc_step1
[debug] SikuliXforJython: found Sikuli Jython in:
/C:/work/calc_step1/sikuli-java.jar/Lib
[debug] SikuliXforJython: Trying to add to sys.path
[debug] SikuliXforJython: new Jython path:
[debug] SikuliXforJython: sys.path[0]: C:\work\calc_step1\calc.sikuli
[debug] SikuliXforJython: sys.path[1]: C:\work\calc_step1\robotframework-2.8.5.jar\Lib\robot\libraries
[debug] SikuliXforJython: sys.path[2]: C:\work\calc_step1\robotframework-2.8.5.jar\Lib
[debug] SikuliXforJython: sys.path[3]: C:\work\calc_step1\Lib
[debug] SikuliXforJython: sys.path[4]: __classpath__
[debug] SikuliXforJython: sys.path[5]: __pyclasspath__/
[debug] SikuliXforJython: sys.path[6]: .
[debug] SikuliXforJython: sys.path[7]: C:\work\calc_step1
[debug] SikuliXforJython: sys.path[8]: /C:/work/calc_step1/sikuli-java.jar/Lib
[debug] ResourceLoaderBasic: SikuliX Package Build: 1.0.1 12SEP2013135849
[debug] Jython: sikuli: __init__: entering
[debug] Jython: sikuli: Sikuli: entering
[debug] Jython: sikuli: Sikuli: constants
[debug] Jython: sikuli: Sikuli: import Region
[debug] Jython: sikuli: Sikuli: import Screen
[debug] Jython: sikuli: Sikuli: Env.addHotkey
[debug] Jython: sikuli: Sikuli: import Match
[debug] Jython: sikuli: Sikuli: import Pattern
[debug] Jython: sikuli: Sikuli: import Location
[debug] Jython: sikuli: Sikuli: import ScreenUnion
[debug] Jython: sikuli: Sikuli: import Finder
[debug] ResourceLoaderBasic: check: we are running on arch: x86
[debug] ResourceLoaderBasic: check: using Java at: C:/Program Files (x86)/Java/jre7/
[debug] ResourceLoaderBasic: check: Exists libs folder at location of jar? YES: C:/work/calc_step1/
[debug] ResourceLoaderBasic: checkLibsDir: C:/work/calc_step1/libs
[debug] ResourceLoaderBasic: loadLib: WinUtil
[debug] ResourceLoaderBasic: loadLib: Found: WinUtil
[debug] ResourceLoaderBasic: loadLib: Now loaded: WinUtil
[debug] ResourceLoaderBasic: checkLibsDir: Using libs at: C:\work\calc_step1\libs
[debug] ResourceLoaderBasic: check: Using this as OCR directory (tessdata) too
[debug] ResourceLoaderBasic: loadLib: VisionProxy
[debug] ResourceLoaderBasic: loadLib: Found: VisionProxy
[debug] ResourceLoaderBasic: loadLib: Now loaded: VisionProxy
[debug] Jython: sikuli: Sikuli: import App
[debug] ResourceLoaderBasic: loadLib: Is already loaded: WinUtil
[debug] Screen: initScreens: basic initialization (1 Screen(s) found)
[debug] *** monitor configuration (primary: 0) ***
[debug] Screen 0: S(0)[0,0 1280x1024]
[debug] *** end monitor configuration ***
[debug] Jython: sikuli: Sikuli: import Key
[debug] Jython: sikuli: Sikuli: import from Basics
[debug] Jython: sikuli: Sikuli: import from compare
[debug] Jython: sikuli: Sikuli: init SikuliImporter
[debug] Jython: sikuli: Sikuli: import SikuliScript
[debug] Jython: init SCREEN as ()
[debug] Debug: setLogFile: C:/work/calc_step1/UserLog.txt

Revision history for this message
RaiMan (raimund-hocke) said :
#15

ok, then you should now switch off the logging and try to run your test:

in calc you only need the 2 lines at the beginning
import org.sikuli.basics.SikuliXforJython
from sikuli import *

addImagePath("calc.sikuli")
needs a complete absolute path to work.

In your case, this should work:
addImagePath(sys.path[0])

since the first entry seems to contain the absolute path to calc.sikuli.

a more general solution would be:
scriptName = "calc.sikuli"
for e in sys.path:
    if e.endswith(scriptName):
        addImagePath(e)

Revision history for this message
Greg (gregauvray) said :
#16

Ok I modified as you said.
I think now that a resource is missing :

C:\work\calc_step1>robottest.bat
==============================================================================
Verify Operations
==============================================================================
Verify that 2 + 2 = 4 | FAIL |
User keyword 'Start App' contains no keywords.
------------------------------------------------------------------------------
Verify Operations | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
Output: C:\work\calc_step1\output.xml
Log: C:\work\calc_step1\log.html
Report: C:\work\calc_step1\report.html

I tried from Robot IDE, and I got this error :
unexpected error: [ ERROR ] Parsing 'robot_suite\verify_operations.txt--argumentfile' failed: Data source does not exist.

Revision history for this message
RaiMan (raimund-hocke) said :
#17

ok, now you have to bring back Mike's content to calc.py.

Revision history for this message
Greg (gregauvray) said :
#18

in calc.py it is the Mike's content but what I don't understand is the following:

in calc.py I see :
def startApp(self):
        calcApp = App("Calculator")
        if not calcApp.window():
            App.open("calc.exe"); wait(2)
        calcApp.focus(); wait(1)

but in verify_operations.txt, I see :
*** Test Cases ***
Verify that 2 + 2 = 4
    Start App

So I don't know how the link can can be done from "Start App" and startApp

Revision history for this message
RaiMan (raimund-hocke) said :
#19

This is RFW specific how to deal with such strings.
As far as I understood, you have some freedom about what you write and RFW will try to find the target (startApp() in this case).

But there are some rules: you have to contact the RFW docs about that.

I cannot test it with this example, since I do not want to setup RFW on my Windows. For what I want to do, having it working on Mac is sufficient for me.

I recommend, to just make a simpler example and verify, that it principally works.

Revision history for this message
RaiMan (raimund-hocke) said :
#20

this test.txt works for me
*** Settings ***
Library stuff/calc.sikuli/calc.py

*** Test Cases ***
Verify that 2 + 2 = 4
   Start App
   Verify App
   Perform Action 2 + 2
   Verify Result 4

you have to obey the rules for the tabular character of the stuff in txt format.

with this calc.py
import org.sikuli.basics.SikuliXforJython
from sikuli import *

popup("calc.sikuli")

def startApp():
  popup("startApp")

def verifyApp():
  popup("verifyApp")

def performAction(*args):
  popup("performAction")

def verifyResult(*args):
  popup("verifyResult")

I have no time, to check, why the def's are not found, when wrapped in a class.

Revision history for this message
RaiMan (raimund-hocke) said :
#21

uups it has stollen the additional blanks:

one dot means one blank (as far as I remember: at least 2 blanks proceed to the next column

*** Test Cases ***
Verify that 2 + 2 = 4
   Start App
   Verify App
   Perform Action….2….+….2
   Verify Result….4

Revision history for this message
Greg (gregauvray) said :
#22

I agree with you , it works with your calc.py simplified :) . It is the first time since few days I see a PASS

But yes, it seems that there is an issue with the classes are wrapped in a class

Revision history for this message
Greg (gregauvray) said :
#23

in calc.py I modified this :

class Calculator(object): replaced by class calc(object):
...
...
...

if __name__ == "__main__":
       calc = Calculator() replaced by calc = calc()

and it works :

C:\work\calc_step1>robottest.bat
==============================================================================
Verify Operations
==============================================================================
Verify that 2 + 2 = 4 | PASS |
------------------------------------------------------------------------------
Verify Operations | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output: C:\work\calc_step1\output.xml
Log: C:\work\calc_step1\log.html
Report: C:\work\calc_step1\report.html

Revision history for this message
Best RaiMan (raimund-hocke) said :
#24

ok, now I got the secret behind all this:

- if you want to use a class inside a module, then the class name has to be the same as the module name (without the .py and/or the .sikuli) - and this is case sensitive. If this is not the case (module name != class name), then there are more options to specify the class to be loaded.

- if you use the library specification in Settings with a folder structure like folder/folder/folder/module.py, then there MUST be module name == class name (case sensitive)

Taking this all together, then this is a valid example:

*** Settings ***
Library….stuff/Calculator.sikuli/Calculator.py

*** Test Cases ***
Verify that 2 + 2 = 4
   Start App
   Verify App
   Perform Action….2….+….2
   Verify Result….4

with this Calculator.sikuli:

import org.sikuli.basics.SikuliXforJython
from sikuli import *

popup("Calculator.sikuli")

class Calculator:

  def __init__(self):
    popup("__init__")

  def startApp(self):
    popup("startApp")

  def verifyApp(self):
    popup("verifyApp")

  def performAction(self, *args):
    popup("performAction")

  def verifyResult(self, *args):
    popup("verifyResult")

  def runAllTests(self):
    self.startApp()
    self.verifyApp()
    self.performAction()
    self.verifyResult()

# ---- this is ignored when imported
# ---- makes this runnable for testing outside RFW
if __name__ == "__main__":
    Calculator().runAllTests()

… and this simply does what it should.

Revision history for this message
Greg (gregauvray) said :
#25

Thank you Raiman for your precious help and your very good support.
I'm now ready to test with Sikuli and RobotFRW

See you later for a new question :)
Greg

Revision history for this message
Greg (gregauvray) said :
#26

Thanks RaiMan, that solved my question.

Revision history for this message
RaiMan (raimund-hocke) said :
#27

Thank you also:
you finally "convinced" me, to add some support for RFW into Sikuli.
It fits very well as some testing framework and on the JRuby side, I will add support for RSpec and Cucumber as well.

You will be able to directly edit your test in the IDE, provide the needed Sikuli libraries and other stuff and then run your test.

This will be added as an option with setup: I want to use Testing frameworks.

all the best and happy testing.

Revision history for this message
balu (balu-networks7) said :
#28

Hi Greg/Raiman,

   We are also seeing the same issues that you have seen while running robot test. From last three days We are trying to fix those errors. But we are unable to fix. Since lot of thread there above, we are unable to follow the things that worked for you.

  Could you please provide the settings/files that worked for you.

  It will be helpful if you provide the following details step-by-step:

STEP 1. Calc.py
STEP 2. Verify_operations.txt
STEP 3. Jar files details
STEP 4. PATH setting details
STEP 5. Command you are using to run the test.

It will be really helpful if you provide us the above details.

Thanks a lot in advance.

Thanks,
Balu.

Revision history for this message
RaiMan (raimund-hocke) said :
#29

@balu
the current discussion takes place in the original post
http://blog.mykhailo.com/2011/02/how-to-sikuli-and-robot-framework.html

Revision history for this message
balu (balu-networks7) said :
#30

Hi RaiMan,

  Thanks for your reply.

   Followed this steps that Tset suggested. But still I am getting some errors. Could you please help me to fix this.

  Below is my current situation:

STEP 1 :

My Calc.py contents:
=================

# -*- coding: utf-8 -*-
from __future__ import with_statement

# IMPORTANT: python level import - don´t mix it with java level imports of Sikuli classes
# like from org.sikuli.script import Region
# For more details go here: https://answers.launchpad.net/sikuli/+question/261129
from sikuli import *

setBundlePath("calc.sikuli")

s = Screen()

class Calculator(object):

 def __init__(self):
  self.appCoordinates = (0, 0, 1024, 768)

 def startApp(self):
  calcApp = App("Calculator")
  if not calcApp.window():
    App.open("calc.exe")
    s.wait(2)
  calcApp.focus()
  s.wait(1)

 def verifyApp(self):
  # check application
  if s.exists("CalcApp.png"):
   print("PASS: Calculator window appeared")
  else:
   print("FAIL: No calculator window")

 def performAction(self, *args):
  # get application region
  s.find("CalcApp.png")

  match = s.getLastMatch()
  self.appCoordinates = (match.getX(), match.getY(), match.getW(), match.getH())
  appRegion = Region(*self.appCoordinates)

  # rewrite action
  action = args[1]
  if args[1] == '+':
   action = 'Plus'
  elif args[1] == 'exp':
   action = 'Exp'

  # with appRegion:
  s.click("btnC.png")

  s.click( "btn%s.png" % (args[0],) )
  s.click( "btn%s.png" % (action,) )
  s.click( "btn%s.png" % (args[2],) )

  s.click("btnEqual.png")

 def verifyResult(self, *args):
  expected_result = str(eval(''.join(args)))
  actual_result = self.getResultFromClipboard()

  #verification
  print expected_result
  print actual_result
  if actual_result == expected_result:
   print("PASS: Action performed correctly and result equals %s" % expected_result)
  else:
   print("FAIL: Actual result '%s' is not equal to expected result '%s'" % (actual_result, expected_result))

 def getResultFromClipboard(self):
  type('c', KEY_CTRL)
  return str(Env.getClipboard())

 def runTest(self):
  self.startApp()
  self.verifyApp()

  actions = '2+2'
  self.performAction(*actions)
  self.verifyResult(*actions)

if __name__ == "__main__":
 calc = Calculator()
 calc.runTest()

STEP 2: Verify_operations.txt:
========================

***Settings***
#Library calc.Calculator WITH NAME Calculator
Library C:/Users/symbol/Desktop/Projects/Sikuli Projects/calc.sikuli/calc.py

***Test Cases***

Verify that 2 + 2 = 4
 Start App
 Verify App
 Perform Action 2 + 2
 Verify Result 4

Verify that 2 + 2 = 5
 Start App
 Verify App
 Perform Action 2 + 2
 Verify Result 5

Click on non-existent button "Exp"
 Start App
 Verify App
 Perform Action 2 exp 2
 Verify Result 2

STEP 3: robottest.bat contents:
==========================

@echo off

set sikulix_jar=C:\robot\libs\SikuliX_110\sikulixapi.jar
set robot_framework_jar=C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\robotframework-2.5.5.jar

java -cp "%robot_framework_jar%;%sikulix_jar%" ^
     -Dpython.path="%sikulix_jar%/Lib" ^
     org.robotframework.RobotFramework ^
     --pythonpath=calc.sikuli ^
     --outputdir=results ^
     --loglevel=TRACE ^
     %*

STEP 4:

When I run I am getting following error:

C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli>robottest.bat verif
y_operations.txt
Exception in thread "main" Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\robotframew
ork-2.5.5.jar\Lib\robot\__init__$py.class", line 16, in <module>
  File "C:\jython2.5.4rc1\Lib\os.py", line 132, in <module>
    raise ImportError, 'no os specific module found'
ImportError: no os specific module found

C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli>

I am using "Windows7 32bit".

CLASSPATH : C:\robot\libs\SikuliX_110\sikulixapi.jar
JYTHONPATH : C:\jython2.5.4rc1\Lib
SIKULIX_HOME : C:\robot\libs\SikuliX_110\

Could you please help me to fix this issue. Thanks for your help.

Thanks,
Balu.

Revision history for this message
RaiMan (raimund-hocke) said :
#31

seems to be some combined problem of Windows7 32bit + robotframework-2.5.5 + jython2.5.4rc1

So as a first step you should try with the latest robot framework

If this does not help, you might try with Jython 2.7 (which in turn needs to upgrade to Java 7)

If this does not help, you either have to say good bye to robot framework ;-) (hope you get it solved though)

… definitely not a SikuliX problem.

Revision history for this message
balu (balu-networks7) said :
#32

Hi RaiMan,

I have used "robotframework-2.8.5.jar" now.

Its throwing following erro:

C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli>robottest.bat verif
y_operations.txt
[ ERROR ] Error in file 'C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.s
ikuli\verify_operations.txt': Non-existing setting 'Library C:/Users/symbol/Desk
top/Projects/Sikuli Projects/calc.sikuli/calc.py'.
==============================================================================
Verify Operations
==============================================================================
Verify that 2 + 2 = 4 | FAIL |
No keyword with name 'Start App' found.
------------------------------------------------------------------------------
Verify that 2 + 2 = 5 | FAIL |
No keyword with name 'Start App' found.
------------------------------------------------------------------------------
Verify Operations | FAIL |
2 critical tests, 0 passed, 2 failed
2 tests total, 0 passed, 2 failed
==============================================================================
Output: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\ou
tput.xml
Log: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\lo
g.html
Report: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\re
port.html

C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli>

Thanks,
Balu.

Revision history for this message
RaiMan (raimund-hocke) said :
#33

ok, fine, then now it principally works.

It seems you have to revise your project structure and either adapt this or the Library setting in verify_operations.txt.

… but this is basic RobotFrameWork knowledge ;-)

Revision history for this message
balu (balu-networks7) said :
#34

Hi Raiman,

  Thanks for your reply.

I tried to use both the following one by one in verify_operations.txt:

Library calc.Calculator WITH NAME Calculator
Library C:/Users/symbol/Desktop/Projects/Sikuli Projects/calc.sikuli/calc.py

but still I am getting following error:

C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli>robottest.bat verif
y_operations.txt
[ ERROR ] Error in file 'C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.s
ikuli\verify_operations.txt': Importing test library 'calc.Calculator' failed: I
mportError: No module named sikuli
Traceback (most recent call last):
  File ".\calc.py", line 7, in <module>
    from sikuli import *
  File "C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\Lib\sikuli\
__init__.py", line 3, in <module>
    from Sikuli import *
  File "C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\Lib\sikuli\
Sikuli.py", line 10, in <module>
    from org.sikuli.script import SikuliScript
PYTHONPATH:
  C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\robotframework-2.
8.5.jar\Lib\robot\libraries
  C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\robotframework-2.
8.5.jar\Lib
  C:\jython2.5.4rc1\Lib
  C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\Lib
  __classpath__
  __pyclasspath__/
  .
  C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli
CLASSPATH:
  C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\robotframework-2.
8.5.jar
  C:\robot\libs\SikuliX_110\sikulixapi.jar
==============================================================================
Verify Operations
==============================================================================
Verify that 2 + 2 = 4 | FAIL |
No keyword with name 'Start App' found.
------------------------------------------------------------------------------
Verify that 2 + 2 = 5 | FAIL |
No keyword with name 'Start App' found.
------------------------------------------------------------------------------
Verify Operations | FAIL |
2 critical tests, 0 passed, 2 failed
2 tests total, 0 passed, 2 failed
==============================================================================
Output: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\ou
tput.xml
Log: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\lo
g.html
Report: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\re
port.html

C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli>

Could you please give me a idea to fix this.

Thanks in advance.

Revision history for this message
balu (balu-networks7) said :
#35

Hi RaiMan,

  Could you please look into the above error.

  I am new to RFW and Sikuli. I am unable to fix this error.

  Please guide me on this.

Thanks,
Balu

Revision history for this message
balu (balu-networks7) said :
#36

Hi RaiMan,

   I am suspecting issue in "pathonpath" in my robottest.bat . I have installed python in "C:\Python27". Should I refer this is python installation path?

@echo off

set sikulix_jar=C:\robot\libs\SikuliX_110\sikulixapi.jar
set robot_framework_jar=C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\robotframework-2.8.5.jar

java -cp "%robot_framework_jar%;%sikulix_jar%" ^
     -Dpython.path="%sikulix_jar%/Lib" ^
     org.robotframework.RobotFramework ^
     --pythonpath=calc.sikuli ^
     --outputdir=results ^
     --loglevel=TRACE ^
     %*

I tried with python installtion path. But still I am getting same error.

Please guide me on this.

Revision history for this message
balu (balu-networks7) said :
#37

Hi RaiMan,

 I tried the example given in "http://stackoverflow.com/questions/27039016/how-to-create-custom-python-code-library-for-robot-framework" using my robottest.bat. Its working as expected as shown below:

C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli>robottest.bat test.
robot
==============================================================================
Test
==============================================================================
Example that calls a python keyword | PASS |
------------------------------------------------------------------------------
Test | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\ou
tput.xml
Log: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\lo
g.html
Report: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\re
port.html

  So. There is no problem with PYTHONPATH right?

I am seeing issue when I use "calc.py" as Library. Here its throwing some sikuli related errors as shown below:

C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli>robottest.bat verif
y_operations.txt
[ ERROR ] Error in file 'C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.s
ikuli\verify_operations.txt': Importing test library 'C:\Users\symbol\Desktop\Pr
ojects\Sikuli Projects\calc.sikuli\calc.py' failed: ImportError: No module named
 sikuli
Traceback (most recent call last):
  File "C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\calc.py", l
ine 7, in <module>
    from sikuli import *
  File "C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\Lib\sikuli\
__init__.py", line 3, in <module>
    from Sikuli import *
  File "C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\Lib\sikuli\
Sikuli.py", line 10, in <module>
    from org.sikuli.script import SikuliScript
PYTHONPATH:
  C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\robotframework-2.
8.5.jar\Lib\robot\libraries
  C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\robotframework-2.
8.5.jar\Lib
  C:\jython2.5.4rc1\Lib
  C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\Lib
  __classpath__
  __pyclasspath__/
  .
  C:\Python27\Lib
CLASSPATH:
  C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\robotframework-2.
8.5.jar
  C:\robot\libs\SikuliX_110\sikulixapi.jar
==============================================================================
Verify Operations
==============================================================================
Verify that 2 + 2 = 4 | FAIL |
No keyword with name 'Start App' found.
------------------------------------------------------------------------------
Verify that 2 + 2 = 5 | FAIL |
No keyword with name 'Start App' found.
------------------------------------------------------------------------------
Verify Operations | FAIL |
2 critical tests, 0 passed, 2 failed
2 tests total, 0 passed, 2 failed
==============================================================================
Output: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\ou
tput.xml
Log: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\lo
g.html
Report: C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli\results\re
port.html

C:\Users\symbol\Desktop\Projects\Sikuli Projects\calc.sikuli>

Could you please look into this?

Thanks in advance.

Revision history for this message
balu (balu-networks7) said :
#38

Thanks Raiman,

  I am following-up in my own question in :

https://answers.launchpad.net/sikuli/+question/261208

Thanks,
Balu