IDEA+Sikuli環境搭建及Demo
阿新 • • 發佈:2018-12-09
簡介:Sikuli是識別和控制GUI元件進行UI自動化測試的技術,它是有MIT的研究人員開發進行設計的。Sikuli在墨西哥維喬印第安人(Huichol Indians)的語言裡是上帝之眼的意思,Sikuli的工作模式與人眼一樣,直接識別影象。這個專案的主創人員之一是來自臺灣的張琮翔
在IDEA中匯入Sikuli包
事先下載好需要匯入的jar包,在專案視窗中使用快捷鍵Ctrl+Alt+Shift+S 或 在工程檔案上右鍵中選擇 Open Module Settings 開啟 Project Structure 視窗 選擇Modules,點選選擇最右面的 + 號 , 選擇第一項或第二項(這裡以第一項為例)
使用Sikuli實現UI自動化
在專案中新增存放圖片的資料夾,並放入,所需圖片檔案(Sikuli根據圖片,去定位) 新建Class檔案,並編寫指令碼
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Screen;
public class CobotSys_ZQextendsMethod_Cobot{
public static void main(String[] args) throws IOException, FindFailed {
String path ="/home/wangw/IdeaProjects/CobotSys/Pictures_PNG/"; //圖片路徑
String strat = null;
String end =null;
Screen scr = new Screen(); //例項化
//獲取時間,列印開始日誌
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
strat = dateFormat.format(now);
System.out.println("strat"+"-------"+strat);
scr.wait(path+"cion.png", 5);
scr.click(path+"cion.png");
scr.wait(path+"Navigation.png", 5); //等待元素出現,超時5秒
scr.click(path+"Navigation.png"); //點選元素
Date now1 = new Date();
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
end = dateFormat1.format(now1);
System.out.println("end"+"-------"+end);
if (scr.exists(path+"result.png", 5) != null){
System.out.println("測試通過");
}
else{
System.out.println("測試失敗");
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
執行結果如下
sikuli語法(注:方法中引數,P代表圖片格式,T代表文字格式)
方法 | 描述 |
---|---|
find(P) | find就是找到與指定圖片相似度最高的圖片. |
findall(P) | findAll就是與指定圖片相似的所有圖片 |
wait(P) | wait就是等待指定圖片的出現 |
waitVanish(P) | waitVanish就是等待指定圖片的消失 |
exists(P) | exists就是判斷指定的圖片是否存在 |
click(P) | click就是找到與指定圖片最相似的圖片, 然後單擊 |
doubleClick(P) | doubleClick就是找到與指定圖片最相似的圖片, 然後雙擊 |
rightClick(P) | rightClick就是找到與指定圖片最相似的圖片, 然後右擊 |
hover(P) | hover就是找到與指定圖片最相似的圖片, 然後滑鼠指標懸浮其上 |
dragDrop(P,P) | dragDrop就是從一個圖形的中心點拉到另一個圖形的中心點 |
type(T) | 在焦點處, 一一輸入指定的文字 |
type(P,T) | 單擊指定的圖片, 然後再一一輸入指定的文字 |
paste(T) | 在焦點處, 貼上指定的文字 |
paste(P,T) | 單擊指定的圖片, 然後再貼上指定的文字 |