使用Sikuli获取窗口的自动截图?

时间:2013-02-26 21:08:26

标签: python python-2.7 sikuli

这里的简单问题:我想使用Sikuli在mac上截取一个窗口的屏幕截图,这可以通过点击CMD + SHIFT + 4然后点击Space,然后点击一个窗口来完成。

对于CMD + SHIFT + 4我遇到了麻烦。这不起作用:

keyDown(KEY_META)
keyDown(Key.SHIFT)
wait(1)
type("4")
wait(1)
keyUp(Key.SHIFT)
keyUp(KEY_META)

有人有什么想法吗?我对其他打击关键组合的路线持开放态度,例如,我知道要复制这种方法很有效:

type("c",KEY_META)

但是,它不接受三个论点。

2 个答案:

答案 0 :(得分:10)

type("4", KeyModifier.CMD+KeyModifier.SHIFT)

或者,甚至更好:

import shutil
import os
screenshotsDir = "absolute-path-to-a-folder"
img = capture(some_region)
shutil.move(img, os.path.join(screenshotsDir, "some-name.png"))

其中some_region是:

some_region = SCREEN # for whole screen

someRegion = App.focusedWindow() # for the frontmost window

这样做的好处是,您可以控制镜头的文件名。

答案 1 :(得分:0)

找到了一个更好的解决方案,它确实有效:

find_shortest_path_length(maze, i, j - 1, current_path_length + 1, shortest_path_length)

Screen.capture() 使用以下方法返回 ScreenImage 类的实例:'save'、'saveInBundle'、'getFile'、'getFilename'。方法 save() 向提供的前缀参数添加一个唯一编号。