Java是好,开源框架遍地都是,各种niubility的jar包,各种神器,真是不亦乐乎.
研究一下基于图片识别作为对象的niubility的sikuli框架。
MIT的研究人员设计了一种新颖的图形脚本语言Sikuli,计算机用户只须有基本的编程技能(比如会写print"hello world"),
他不需要去写出一行行代码,而是用屏幕截图的方式,用截出来的图形元素组合出神奇的程序。
简单了解一下:
官网http://slides.sikuli.org/
API doc :http://nightly.sikuli.de/docs/index.html
sikuli可以用来测试Flash ,Android和IOS
优缺点参考百度百科
优点:
1.可以测试不易识别的对象,比如map 和Flash
2.可以验证图片
3.通俗易懂,容易维护
缺点:
待续
注意事项:
1. 只能识别当前屏幕的内容,如果操作对象被小化,是无法识别的
2. 第一次运行需要重启系统 ,虽然不make sense
下载:http://pan.baidu.com/s/1hq2CaHm
实例1.
打开chrome,输入http://www.cnblogs.com/tobecrazy/ 并转到
首先你得分别准备截图
创建工程,把sikuli-script.jar添加进去
代码如下:
import org.openqa.selenium.Keys;
import org.sikuli.basics.Debug;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Key;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;
public class NavigateToMyBlog {
private static String URL="http://www.cnblogs.com/tobecrazy/";
public static void main(String[] args) throws FindFailed, Exception {
Debug.setDebugLevel(3);
Screen screen=new Screen();
Pattern chromeLogo=new Pattern("D:\MyBlog\chromeICO.png");
screen.doubleClick(chromeLogo);
Pattern maxButton=new Pattern("D:\MyBlog\maxButton.png");
screen.click(maxButton);
Pattern addressBar=new Pattern("D:\MyBlog\adressBar.png");
screen.type(addressBar, URL);
String keys=Keys.ENTER.toString();
screen.keyDown(Key.ENTER);;
}
}