sikuli函数、简单事件操作个人总结笔记
作者:stormwy
网址:http://blog.csdn.net/stormwy/article/details/7955137
其实sikuli的语法跟python的语法是一样的,大家在学习sikuli时,要看看python的语法,这样就能有更多样的方法来实现丰富的功能。
由于关于sikuli的中文资料实在太少了,我在学习使用sikuli的过程中,记录下下面一些常用操作,以供sikuli学习者参考!
1、findAll(图片)
findAll() searches the entire screen for all the matchingvisual patterns and returns a list of locations of those similar patterns. Thiscapability allows us to obtain all the checked items are on the screen. Then,we can simply write a for loop in standard Python syntax and call click() oneach element in the list.
![](https://img-my.csdn.net/uploads/201209/10/1347232486_7294.png)
2、点击操作
click(x)
左键点击元素x
rightClick(x)
右键点击元素x
3、below()
![](https://img-my.csdn.net/uploads/201209/10/1347232545_6858.png)
4、dragDrop()
This function takes two images asarguments. The first image describes the source GUI object to drag and thesecond image describes the appearance of the destination location where the GUIobject should be dragged to and dropped.
![](https://img-my.csdn.net/uploads/201209/10/1347232590_7075.png)
典型例子:Working with Sliders
5、right()
表示在右边
![](https://img-my.csdn.net/uploads/201209/10/1347232694_7370.png)
6、popup(string)
弹出一个提示框
例:
popup("Obama has updated his message")
运行:
![](https://img-my.csdn.net/uploads/201209/10/1347232735_9362.png)
7、键盘操作:
![](https://img-my.csdn.net/uploads/201209/10/1347232782_6484.png)
8、Resizinga Window
This tutorial demonstrates how to use Sikuli script to resize a window by dragging its bottom-right corner. In order to do so, you have to evaluate the current position of this corner on the screen, move the mouse pointer to the applicable click point and then perform one or more drag actions.
![](https://img-my.csdn.net/uploads/201209/10/1347232880_5134.png)
9、表示方位的词:
Nearby(number)、above()、below()、left()、right()、getCenter()
10、位置偏移
Location(t.x-30,t.y+30)
其实用图形法会方便和舒服:点击图片,进入设置界面,点击偏移选项卡,然后可以用鼠标设置偏移量,点到哪就偏移到哪,如果想偏移到更远的地方,就滚动鼠标滑轮,可以放大缩小页面,选择偏移点。
11、屏幕翻页
其他键盘操作类型参数见Key (built-in class)
12、读写文件(其实就是python的语法)
#打开 写文件
f=open('c:/wy.txt','a')
t="hello\n"
f . write(t)
f.close()
#打开 读文件
f=open('c:/wy.txt','r')
t=f.read()
popup(t)
#open(路径+文件名,读写模式)
#读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式
13、input(“字符串”)
显示一个输入框,以供输入。要输入中文应该在前面加u
即input(u“字符串”),不然会乱码
14、if语句
If 条件 and 条件:#(注意有冒号,‘#’号表示注释)
语句
15、openApp(应用程序路径名)
打开应用程序,注意应用程序的路径名里的斜杠“\”要改为双斜杠“\\”。
16、复制、粘贴操作
type("c",KEY_CTRL) #复制
type("v",KEY_CTRL) #粘贴
17、waitVanish("20120902172907.png",300)
waitVanish()最好带时间,不然还没消失就返回消失的信息了。
我觉得用下面的代替好些
while exists("image.png"):
wait(1) #ifthe image exist it will wait until the image disappear
18、sikuli输入中文
input(u"请输入想要获取并下载多少个页面的App资源:")
popup(u”chinese”)
在前面加‘u’避免乱码,‘u’是unicode还是utf8,我就不清楚了。
19、设定循环次数
for x inrange(10): #循环10次,x不用预先定义
循环体
20、编程小经验
1、用sikuli编程的时候,最好是保存为可执行文件来测试,因为有些功能直接测试是测试不出来的,比如type("c",KEY_CTRL) #复制,直接运行测试(好像)是无效的,当时我还困惑了很久。后来无意中保存为可执行文件后才发现是可以的。
2、用sikuli编程时,多用wait()语句,因为很多时候没有给它一定的识别时间,就容易出错。
还有的就是,进行复制粘贴操作时,如果需要切换到另外一个页面粘贴,再切回来,如果中间不wait一段时间,等粘贴完成,很可能就没有粘贴成功。
以上是个人的经验之谈,希望对大家有所帮助!
附录是sikuli官网上http://sikuli.org/docx/的函数检索Index,很多新学习者不知道,所以在这里贴出来。
如果想要知道更多sikuli的详情,我推荐你到官网http://sikuli.org/,
因为中文的关于sikuli的编程资料太少了。
附录:sikuli函数检索
Sikuli Funtions Index
Symbols|A |B |C |D |E |F |G |H |I |K |L |M |N |O |P |R |S |T |W
Symbols
--args <arguments> -h,--help -i | -r,--run <sikuli-file> -s,--stderr -t,--test <sikuli-file> |
A
B
C
closeApp() (built-in function) command line option |
D
DebugLogs (Settings attribute) DelayAfterDrag (Settings attribute) |
E
F
G
H
I
Image Search Path |
K
L
M
N
O
ObserveMinChangedPixels (Settings attribute) |
P
R
Region (built-in class),[1],[2],[3], [4], [5], [6], [7], [8], [9] |
S
T
W