2012-12-05 48 views
0

当我使用Python脚本在OS X上的Google Chrome上运行Selenium风格的集成测试时,我想在每一步都进行截图。我只想抓取Google Chrome窗口,而不是整个桌面。有没有办法从Python脚本中获取OS X中当前运行的Google Chrome窗口的屏幕截图?从Python中运行OS X中的Google Chrome浏览器的屏幕截图

+0

好像你可以使用'subprocess'来调用运行Grab应用程序的苹果脚本,但可能有一种我不知道的更优雅的方式。 –

回答

0

听起来像你正在寻找MacOS下的"screencapture" command line工具。你可以从你的Python脚本中调用它吗?

其中一个选项是“-w”,它是“窗口选择模式”。我不确定这是否可以在脚本中使用(即它是否需要用户交互?),但如果这不起作用,您还可以尝试“-m”,这是“唯一捕获主监视器”选项。

+0

我可以,但问题是我需要将它传递给windowid,我不知道如何为Google Chrome检索它,请参阅http://apple.stackexchange.com/questions/73994/how-do -i-find-the-windowid-of-google-chrome-to-pass-to-screencapture-l –

+0

不是Applescriptable? Ewwww。您可能需要为Google chrome编写某种Javascript扩展程序,以输出窗口ID或通过其他半笨重的方式使其可用。 –

1

我没有从OS X做到了在Chrome,但确实是这样不行:

browser.open("/page-to-capture") 
png = browser.capture_screenshot_to_string() 
with open("screenshot.png", "wb") as fh: 
    fh.write(png.decode('base64')) 

的确,它使用与火狐的Linux硒工作对我来说过去。

+0

似乎有一个get_screenshot_as_file方法可以做到这一点。 –

相关问题