[sikuli]-设置窗口大小

我们可以拖拽窗口的右下角来改变窗口的大小,那么我们就必须知道当前窗口的坐标

1def resizeApp(app, dx, dy):
2        switchApp(app)
3        corner = find(Pattern( ).targetOffset(3,14))
4
5        drop_point = corner.getTarget().offset(dx, dy)
6        dragDrop(corner, drop_point)
7
8resizeApp("Safari", 50, 50)

上面的例子就是使Mac操作系统中的safari浏览器扩大50*50像素

其实我们有更简洁的方案来实现这个目标,就通过你能确认能够改变窗口大小的点来改变即可。


以safari浏览器窗口为例,我们可以通过右下侧拖拽即可完成屏幕大小的改变

1#setShowActions(True) # debug
switchApp("Safari") # get the frontmost Safari window active
3
4(clickOffsetX, clickOffsetY)  = (3, 18) # evaluated using the preview in IDE
5mTL = find( ) # find top left
6#print mTL; hover(mTL)  # debug

8mTR = mTL.nearby(200).right().find( ) # find top right
9
10#print mTR; hover(mTR) # debug
mBR = mTR.below().find( ) # find bottom right, the target corner
12#print mBR # debug

14# move mouse to click point
hover(mBR.getCenter().offset(clickOffsetX, clickOffsetY))
16#exit()  # debug

18mouseDown(Button.LEFT) # press and hold left button
19# move mouse to a new location, may be repeated with other values
mouseMove(Env.getMouseLocation().offset(10, 10))
21mouseUp() # release mouse button

 

我来解释下上面的例子,通过左上角图片找到右上角图片,通过右上角图片来找到右下角图片,点击鼠标左键,拖拽,释放鼠标左键,完成。

其实这个动作一行代码就可以搞定,看看下面这个例子:

1hover(find( ).nearby(200).right().find( ).below().find( ).getCenter().offset(3,18))

General comments:

1.无论何时,你的查找操作都在一个区域内进行,请确保你的性能。
2.这个例子给出了一些有用的方法,一些图片可参数都可以拿来做变量使用
3.使用IDE在预览窗口进行这些操作,其实可以把他们放到代码里,就更加灵活多变
4.多使用一些鼠标移动操作,会使你的操作更加灵活。
5.开发脚本时,多使用setShowActions() and exit() 很有用,可以让你能够debug你的脚本.

 

你可能感兴趣的:(sikuli)