1、安装
Win32Util.dll: Can‘t load 32-bit .dll on a AMD 64 bit platform
需要切换为32位的jre,版本的话,1.7测试没有问题
Getting the VisionProxy.dll: Can not find dependent libraries
推荐安装sikulix,然后设置环境变量,在PATH中添加sikulix的libs目录。
2、开发
click(patten)和click(patten.targetoffset())的区别
录入中文时,可采用paste方式录入。
当无法使用pagedown或pageup按键滚动页时,通过s.click(Key.TAB),即模拟tab键来切换控件,达到滚动的目的。
3、运行方式
jar包,打jar包时,当有main函数时,注意选择launch configuration。
运行时,提示找不到主清单属性
这是由于没有指定接口类。在jar包中的META-INF中,有一个MANIFEST.MF。该文件为一个清单文件,用于记录配置信息。
在我的jar包中,包含如下属性
Manifest-Version:用来定义manifest文件的版本
Rsrc-Class-Path:没有查询到具体的含义,但猜测用于设置依赖包的路径
Class-Path:应用程序或者类装载器使用该值来构建内部的类搜索路径
Rsrc-Main-Class:指定入口类,应该是eclipse自定义的参数
Main-Class:原始的指定入口类的参数,一般用eclipse导出时,会被指定为org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
在Rsrc-Main-Class添加入口类的class文件,注意不能带.class后缀
工程中的编码格式都是utf-8,在sikuli录入中文时,录入的为乱码。
只需指定用utf-8执行jar包,即在命令中添加参数 -Dfile.encoding=utf-8 ,其中 -D用来设置系统变量值。
4、sikuli的优势和限制
1)解决了selenium无法操作windows ui的问题,例如下载、上传时选择文件,或者不同frame中用div模拟的弹窗,识别起来麻烦得很。
2)上手非常快,可以用sikuli的IDE录入,同时图片化的方式,简单易懂,可读性好。
3)支持java、python等多种语言,可以和selenium无缝对接,只需导入sikuli的脚本jar包即可。
限制
1)成也图片,败也图片。图片的大小不能有丝毫变化,所以如果屏幕分辨率、浏览器缩放等,导致图片大小发生变化,就不要想通用,维护起来会相当痛苦。不同的机器执行,可能得维护多套图片。所以,还是慎用。
综上,只有被selenium逼得实在没招了,我才会去用sikuli。或者是为了快速开发测试用例,用于那种短平快的小项目,节约测试用例的开发成本。