一、安装sikuli(参见:http://lijunwei1228ok.blog.163.com/blog/static/97383797201311279595821/)
1.官网:http://www.sikuli.org/download.html下载
2.在本地双击sikuli-setup.jar,然后再同一个目录中会出现,再双击这个进行安装。
3.安装完成后,在同一个目录下会生成如下文件
目录:F:\selenium\workspace\sikuli
4.双击runIDE.cmd可以运行sikuli的客户端。界面如下,
启动中:
启动后:
5.开始录制模态窗品控件
6.录制后保存文件为*.sikuli--(mtck.sikuli)
7.再导出文件*.skl--(mtck.skl)
8.准备好给java调用的文件如下:
目录:F:\selenium\workspace\sikuli\mtck
双击运行mtckcl.bat,只要能回放正常,在JAVA中调用就肯定没问题。
其中mtckcl.bat 的内容如下:
@echo off
:::::::::::::::::::::::::::
REM 调用Sikuli,点击模态窗口里面元素
::::::::::::::::::::::::::
set fjscriptHome=F:\selenium\workspace\sikuli\mtck
set SikuliHome=F:\selenium\workspace\sikuli
cd /d %fjscriptHome%
"%SikuliHome%"\runIDE.cmd -r "mtck.skl"
二、在eclipse中调用bat文件即可
pm.click(By.id("BtnSwfFileUp")); //上传附件
try {Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); }
try{
Runtime.getRuntime().exec("F:\\selenium\\workspace\\sikuli\\mtck\\mtckcl.bat");
}catch (IOException e1){e1.printStackTrace(); System.out.println("fffffffff");}
//这里有个问题要注意,java调完用sikuli就会马上执行下面的代码,而这时sikuli都还没有执行完呢,所以只好先用sleep等待sikuli执行完,再执行下面的代码了
try {Thread.sleep(39000); } catch (InterruptedException e) { e.printStackTrace(); }
pm.sendKeys(By.id("txtTitle"), "公告发布111"); //输入标题
driver.findElement(By.id("btSubmit")).click(); //这里还有奇怪的问题等待后不会执行该句点击操作也不会错,而把输入标题放在这句上行后,就会执行这两句了。