一、原理
- This library is implemented with Robot Framework Remote Library
- Sikuli api is encapsulated as Robot keywords, and explored to clients with jrobotremoteserver
- Client is implemented with python and use Robot remote library to communicate with server side
- Users could implement their own clients with different languages which support xml rpc
二、使用步骤:
步骤1:先安装robotframework-SikuliLibrary
分为两种方式在线安装:pip Install robotframework-SikuliLibrary
离线安装,需要下载好 robotframework_SikuliLibrary-1.0.8-py2.py3-none-any.whl
然后输入命令 pip install robotframework_SikuliLibrary-1.0.8-py2.py3-none-any.whl
安装成功
步骤2:需要打开jrobotremoteserver 才可以使用
C:\Python27\Lib\site-packages\SikuliLibrary\lib>java -jar SikuliLibrary.jar 8270
这里指定一个端口如8270端口即可
然后打开浏览器,输入网址http://localhost:8270/
可以发现远程server已经打开
这样程序就可以打开 self.start_sikuli_java_process()不会报如下错误了,因为sikuli是java语言写的,不能通过rf直接调用jar
[ERROR] Error in file:'D:\SikuliTest.txt':Initalizing test library 'SikuliLibrary' with no arguments failed:Windows Error:[ERROR 267]
Traceback(most recent call last):
File "C:\Python 27\lib\site-packages\SikuliLibrary\sikuli.py",line 50 in __init__
self.start_sikuli_process(port)
File "C:\Python 27\lib\site-packages\SikuliLibrary\sikuli.py",line 77,in start_sikuli_process
self.start_sikuli_java_process()
File "C:\Python 27\lib\site-packages\SikuliLibrary\sikuli.py",line 162,in start_sikuli_java_process
stderr=self._err_file()
File "C:\Python 27\lib\site-packages\robot\libraries\Process.py",line 355,in start_process
process=subprocess.pOpen(executable_command.,**config.full_config)
File "C:\Python 27\lib\subprocess.py",line 394,in __init__
errread,errwrite)
File "C:\Python 27\lib\subprocess.py",line 664,in __execute_child
startupinfo)
步骤三:(也可以不用设置,我这里也可以跑成功)
User could use different clients to connect to server and call keywords
Library Remote http://<ip>:<port>/
Library Remote http://localhost:8270/
步骤4:开始我们的脚本之旅
*** Settings ***
Suite Setup
Library Selenium2Library
Library SikuliLibrary
*** Test Cases ***
打开浏览器点击更多产品
Open Browser http://www.baidu.com gc
Click C:\\Python27\\Scripts\\sikuli_captured\\更多产品.png
运行后,会出现找不到图片的错误
从官网上查了下原因,发现是截屏软件的原因,需要用sikuliIde里的截屏工具才可以识别。
步骤4:安装sikuliIde环境
双击sikulix.jar,一路默认,在线安装
sikulixlibswin-1.1.1.jar
sikulixsetupIDE-1.1.3-20180711.082119-40-forsetup.jar (IDE/Scripting)
sikulixsetupAPI-1.1.3-20180711.082046-40-forsetup.jar (Java API)
双击runsikulix.cmd
安装成功后打开可视化窗口进行截屏,截屏成功后,把图片保存在图片的路径下,再次运行程序,运行成功
Ps:要注意在使用Click的时候,有时候会提示使用Selenium2Library.Click还是SikuliLibrary.Click.,选择SikuliLibrary.Click.即可。