注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

幸福边缘

紫枫

 
 
 

日志

 
 
 
 

图像识别的自动化工具sikuli(基于java)和robotframework整合  

2014-01-02 10:12:03|  分类: 技术相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在我们自动化测试过程中,总可能出现一些我们无法通过元素获取从而实现操作的功能。没关系,这些都可以用sikuli来解决,因为sikuli是靠图像识别来实现自动化,只要有图像,就可以做自动化。

关于sikuli的介绍请点击这里。

 将robotframeworksikuli整合起来,这样就可以更好的扩充我们的自动化测试框架。

   

本篇博文介绍的是用java来实现sikuli。然后rf中调用,这就适合学习java的同学。

当然,因为sikuli也是基于python的,所以我们当然也可以用python直接编写一些module,然后再rf中调用。这个在后续再研究。

 实际上我想的话,直接用python写应该和robotframework融合的更好,毕竟sikulirf本身都是基于python的。

   

   

1、编写java程序,用sikuli实现自动化

package com.yhd.autotest.jar;

   

import java.awt.AWTException;

import java.awt.Robot;

import java.awt.event.KeyEvent;

import java.io.File;

   

import org.sikuli.script.FindFailed;

import org.sikuli.script.Screen;

   

public class javakeyword {

public static final String ROBOT_LIBRARY_SCOPE="GLOBAL";

   

public void dosomething(String a)

{

System.out.println(a);

   

}

        public void openFireFox(){

                Robot robot = null;

try {

robot = new Robot();

} catch (AWTException e) {

e.printStackTrace();

}

robot.keyPress(KeyEvent.VK_WINDOWS);

robot.keyPress(KeyEvent.VK_D);

robot.keyRelease(KeyEvent.VK_WINDOWS);

robot.keyRelease(KeyEvent.VK_D);

   

//等待3秒

try {

Thread.sleep(5000);

} catch (InterruptedException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

                Screen s=new Screen();

                try {

s.doubleClick("/picture/1.png");

} catch (FindFailed e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

                  

        }

   

//         File file=new File("");

//                String abspath=file.getAbsolutePath();

//                System.out.println(abspath);

}

   

   

   

jython调用报错

   

   

应该是sikuli.script的包没有找到。

   

   

因为sikuli官网提供的是sikuli-java.jar包。可能和javakeyword整个项目打包后就再找不到了吧?(此处不是很明白为什么找不到,但是在eclipse里面能找到)

   

尝试了下面这个方法,解决了:

sikuli-java.jar包的路径配置到环境变量classpath中。再运行用例,就通过了。

运行中,会去配置的环境变量中寻找需要的包。

注意:此处需要用jybot运行才行哦

   

   

   

用例编写:

调用java中的openFireFox功能。

  评论这张
 
阅读(852)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017