首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sikuli对窗口进行自动截图?

问使用Sikuli对窗口进行自动截图?
EN

Stack Overflow用户
提问于 2013-02-27 05:08:26
回答 2查看 9.4K关注 0票数 1

这里有一个简单的问题:我想用Sikuli在mac上截取一个窗口的屏幕截图,方法是点击CMD+SHIFT+4,按空格键,然后点击一个窗口。

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

代码语言:javascript
复制
keyDown(KEY_META)
keyDown(Key.SHIFT)
wait(1)
type("4")
wait(1)
keyUp(Key.SHIFT)
keyUp(KEY_META)

有谁有什么想法吗?例如,我对其他点击组合键的方法持开放态度,我知道复制这个方法效果很好:

代码语言:javascript
复制
type("c",KEY_META)

但是,它不接受三个参数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-27 21:13:45

代码语言:javascript
复制
type("4", KeyModifier.CMD+KeyModifier.SHIFT)

或者,更好的是:

代码语言:javascript
复制
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是:

代码语言:javascript
复制
some_region = SCREEN # for whole screen

或

代码语言:javascript
复制
someRegion = App.focusedWindow() # for the frontmost window

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

票数 9
EN

Stack Overflow用户

发布于 2021-01-31 16:19:48

已经找到了一个更好的解决方案,它实际上是有效的:

代码语言:javascript
复制
screen = Screen()
scr_img = screen.capture(screen.getBounds())
scr_img.save("C:\Screenshots", "screenshot")

Screen.capture()返回一个带有方法的ScreenImage类的实例:‘save’,'saveInBundle','getFile','getFilename‘。方法save()向提供的前缀参数添加一个唯一的数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15099290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档