sikuli实战记录

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。或者是为了快速开发测试用例,用于那种短平快的小项目,节约测试用例的开发成本。

时间: 2024-11-10 00:15:11

sikuli实战记录的相关文章

云端大数据实战记录-大数据推荐

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 这是博主第一次大数据实战的经历,之前都是自己写一些算法然后测试很小的数量级.这次是真正接触到TB集的数据,而且完全是在云端处理.下面就把这次的经历简单分享一下. 首先简单介绍一下这次比赛的环境吧: 1.云:采用的是阿里云 2.数据:从四月十五号到八月十五号期间,用户两千多万的购买行为(包括时间,购买.收藏.购物车的次数) 3.工具:阿里提供的xlab(里面有很多算法,随机森林.逻辑回归.knn等).

SQLI-LAB  的 实战记录(Less 54 - Less 65)

Less - 54 Challenge-1 Test Sourse Code Solution Less - 55 Challenge-2 Test Sourse Code Solution Less - 56 Challenge-3 Test Sourse Code Solution Less - 57 Challenge-4 Test Sourse Code Solution Less - 58 Challenge-5 Test Sourse Code Solution Less - 59

云大数据实战记录-大数据推荐

前言 WHY 云:为什么我们须要云.大数据时代我们面对两个问题,一个是大数据的存储.一个是大数据的计算. 由于数据量过大,在单个终端上运行效率过差,所以人们用云来解决这两个问题. WHAT IS 云:云得益于分布式计算的思想.举个简单的样例.运行一千万个数据每一个数据都乘以10并输出,在个人pc上须要大概20分钟.假设是100台电脑做这个工作.可能仅仅用几十秒就能够完毕.云就是我们将复杂的工作通过一定的算法分配给云端的n个server,这样能够大大提高运算效率. How 云:云的实现也就是分步式

kaggle实战记录 =>Digit Recognizer(7月份完全掌握细节及内容)

date:2016-07-11 今天开始注册了kaggle,从digit recognizer开始学习, 由于是第一个案例对于整个流程目前我还不够了解,首先了解大神是怎么运行怎么构思,然后模仿.这样的学习流程可能更加有效,目前看到排名靠前的是用TensorFlow.ps:TensorFlow是可以直接安linux环境下面,但是目前不能在windows环境里面运行(伤心一万点). TensorFlow模块用的是NN(神经网络),既然现在接触到可以用神经网络的例子我再也不好意思再逃避学习神经网络下面

Java 性能优化实战记录(3)--JVM OOM的分析和原因追查

前言: C/C++的程序员渴望Java的自由, Java程序员期许C/C++的约束. 其实那里都是围城, 外面的人想进来, 里面的人想出去. 背景: 作为Java程序员, 除了享受垃圾回收机制带来的便利外, 还深受OOM(Out Of Memory)的困惑和折磨. 本文借鉴了<<深入理解 Java虚拟机>>, 并结合了小编自身的经历和读者一起面对OOM的困局如何分析和破解. 准备工作: 工欲善其事必先利其器, 对java进程的快照分析, 是能够帮助我们迅速的定位出错的原因. 这边我

SSM实战记录(一)--一个大体的分页流程

这是一个使用springMVC+spring+mybatis+bootstrap table做的分页流程,网上之前搜到的类似的教程实在太少了,所以就想着写一个大体的过程(没写的很详细),能帮助到一些人是最好的. 先来一张完成图,可以搜索和按照制定列排序,这些都是操作都是从通过sql搜索出来的. 1.bootstrap table前端设计 对于这种插件,官方例子一般都很详细,遇到不懂得应该去官网查例子,或者翻墙查,反正对百度搜索出来的垃圾不忍直视- 对于表格要注意以下几个问题: 1. 取出来的结果

Affiliate实战记录之一:CPI、CPA、CPM...名词解释

1.CPM (Cost Per Mille,或者Cost Per Thousand;Cost Per Impressions) 每千人成本,按展示次数收费 网上广告收费最科学的办法是按照有多少人看到你的广告来收费.按访问人次收费已经成为网络广告的惯例.CPM(千人成本)指的是广告投放过程中,听到或者看到某广告的每一人平 均分担到多少广告成本.传统媒介多采用这种计价方式.在网上广告,CPM取决于“印象”尺度,通常理解为一个人的眼睛在一段固定的时间内注视一个广告的次数.比如说一个广告 横幅的单价是1

python UI自动化实战记录五:测试页面2-策略页

该部分记录测试页面2-StrategyPage,所有首页上的元素定位.操作.获取属性等方法都写在该类中. 1 首页类继承自BasePage 2 首页类第一部分写的是所有的定位器 3 首页类第二部分类的方法,包括提取页面元素,页面元素的操作.获取属性.验证元素属性正确性等 4 当用例中需要用到该页面的某元素或操作时,补充方法到该类中,再在用例中调用 #coding:utf-8 """ 策略页面类 LOCATOR : 所有页面元素的定位器 策略页面元素的定位和操作均写在该类中 &

一次Mysql slave库恢复实战记录

状况描述:今天登录一个mysql数据库slave节点主机发现/var/lib/mysql下存放大量的mysql-relay-bin文件,最早的文件创建日期甚至是2018年,我记得在slave同步完master的日志操作记录后,会删除这些文件(默认设置不会删除,我记错了).查看mysql slave状态,发现如下报错: mysql> show slave status\G; *************************** 1. row ***************************