Java是好,開源框架遍地都是,各種niubility的jar包,各種神器,真是不亦樂乎.
研究一下基于圖片識別作為對象的niubility的sikuli框架。
MIT的研究人員設(shè)計了一種新穎的圖形腳本語言Sikuli,計算機用戶只須有基本的編程技能(比如會寫print"hello world"),
他不需要去寫出一行行代碼,而是用屏幕截圖的方式,用截出來的圖形元素組合出神奇的程序。
簡單了解一下:
官網(wǎng)http://slides.sikuli.org/
API doc :http://nightly.sikuli.de/docs/index.html
sikuli可以用來測試Flash ,Android和IOS
優(yōu)缺點參考百度百科
優(yōu)點:
1.可以測試不易識別的對象,比如map 和Flash
2.可以驗證圖片
3.通俗易懂,容易維護
缺點:
待續(xù)
注意事項:
1. 只能識別當前屏幕的內(nèi)容,如果操作對象被小化,是無法識別的
2. 第一次運行需要重啟系統(tǒng) ,雖然不make sense
下載:http://pan.baidu.com/s/1hq2CaHm
實例1.
打開chrome,輸入http://www.cnblogs.com/tobecrazy/ 并轉(zhuǎn)到
首先你得分別準備截圖
創(chuàng)建工程,把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);;
}
}