今天终于实现了Robot framework + Selenium2library + Sikuli 的整合
以后在以Selenium为主的test case里面,可以加入Sikuli的元素,从而解决一些比较棘手的问题。(比如一些复杂的操作)
Sikuli的功能很强大,但这里并没有把所有的功能都移植到Robotframework,主要提供四个功能
1. 区域定位,给定屏幕的区域来限制Sikuli的图像识别区域
2. 图像存在判断,判断特定的区域是否存在特定的图像
3. 图像点击,点击特定区域的图像
4. 传字符到图像,向特定的图像发送字符串,实现输入
安装的方法
1. 先装Robotframework 2.77 (不能用2.81)
2. 安装Selenuim2library for Robotframework
3. 安装Jython 2.7b
4. 安装Python 2.75
5. 安装Sikuli, 这里 到网上去搜Sikuli-IDE-1.0.0-Win32或者名字是Sikuli-IDE-1.0.0-Win64的包,解压缩到系统的某个文件目录
6. 安装 SikuliLibrary for Robotframework (下载地址),安装用python setup.py install
7. 安装Ride for Robotframework
8. 设置系统变量
sikuli_home=/path/to/your/sikuli/home, example: C:\Sikuli-IDE-1.0.0-Win32
pythonpath=%sikuli_home%\sikuli-script.jar\Lib\sikuli
classpath=addpath %SIKULI_HOME%\sikuli-script.jar
path=add path c:\jython2.7b1
如何运行
打开ride
运行环境必须选jybot,然后"start"就可以了
两个简单的例子
例子1
混合运用sikuli和selenuim
例子2
利用sikuli做windows的一些简单操作
*** Settings ***
Library Selenium2Library
Library SikuliLibrary
*** Variables ***
${url} http://www.google.com
${BROWSER} firefox
${imagePath} C:\\testsuit\\images
*** Test Cases ***
use sikuli and selenium
add image path ${imagePath}
Open Browser ${url} browser=${BROWSER}
Maximize Browser Window
Set Selenium Implicit Wait 7
${region} region 0 0 1024 768
${r} exists ${region} searchBox.png 10
${bool} Convert to boolean ${r}
Comment Run key word if ${bool}==True click ${r} microsoft.png
Run key word if ${bool}==True click ${r} searchBox.png
type ${r} hello
type ${r} ENTER Key
temp
add image path ${imagePath}
${region} region 0 0 1024 768
click ${region} microsoft.png
Sikuli的图像要放在C:\testsuit\images
Microsoft.png是Windows的开始按钮
searchBox.png是Google的搜索栏
推荐测试的分辨率是1024x768
目前遇到的问题
目前最大的问题就是jython似乎对windows支持的不太好,好多功能都只在Linux上实现,有点小遗憾