当我使用Python脚本在OS X上的Google Chrome上运行Selenium风格的集成测试时,我想在每一步都进行截图。我只想抓取Google Chrome窗口,而不是整个桌面。有没有办法从Python脚本中获取OS X中当前运行的Google Chrome窗口的屏幕截图?从Python中运行OS X中的Google Chrome浏览器的屏幕截图
回答
事实证明,硒具有可与OS X和Google Chrome配合使用的get_screenshot_as_file方法。
听起来像你正在寻找MacOS下的"screencapture
" command line工具。你可以从你的Python脚本中调用它吗?
其中一个选项是“-w
”,它是“窗口选择模式”。我不确定这是否可以在脚本中使用(即它是否需要用户交互?),但如果这不起作用,您还可以尝试“-m
”,这是“唯一捕获主监视器”选项。
我可以,但问题是我需要将它传递给windowid,我不知道如何为Google Chrome检索它,请参阅http://apple.stackexchange.com/questions/73994/how-do -i-find-the-windowid-of-google-chrome-to-pass-to-screencapture-l –
不是Applescriptable? Ewwww。您可能需要为Google chrome编写某种Javascript扩展程序,以输出窗口ID或通过其他半笨重的方式使其可用。 –
我没有从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硒工作对我来说过去。
似乎有一个get_screenshot_as_file方法可以做到这一点。 –
- 1. 浏览器屏幕截图
- 2. Chrome浏览器中的模糊屏幕截图
- 3. Selenium多个浏览器屏幕截图
- 4. 仅限Android Chrome浏览器共享屏幕截图
- 5. 使用HTML5/Canvas/JavaScript在浏览器中截取屏幕截图
- 6. 使用phantomjs获取chrome浏览器中的url的屏幕截图
- 7. python中的屏幕截图
- 8. 从浏览器启动屏幕截图的selemium脚本
- 9. 从屏幕截图中检测浏览器中播放的视频 - OpenCV
- 10. 在浏览器中执行屏幕截图的执行力不足
- 11. Chrome浏览器屏幕截图仅在点击扩展程序时才有效
- 12. 无头Chrome浏览器屏幕截图的最大高度为16,384px?
- 13. 保存WPF网页浏览器的屏幕截图Frame
- 14. 适用于网络浏览器的最佳屏幕截图API
- 15. 从Chrome浏览器到Mozilla的RTCMulticonnection共享屏幕的问题
- 16. SpriteKit屏幕截图的屏幕截图
- 17. Python空cgi浏览器屏幕
- 18. Chrome浏览器和IE浏览器不会等待页面加载之前采取屏幕截图
- 19. Chrome OS的截图
- 20. 如何在Chrome浏览器中捕获打包应用程序的屏幕截图?
- 21. 生成浏览器窗口屏幕截图
- 22. WP7中的位图浏览器截图
- 23. Haskell中的屏幕截图?
- 24. iOS中的屏幕截图
- 25. Google Chrome浏览器中的Google地图闪烁问题
- 26. 如何在Mac OS X中使用Cocoa或C++进行屏幕截图
- 27. 当使用Mac OS X Safari浏览器拍摄屏幕截图时,是否有办法阻止网站检测?
- 28. 从webview的屏幕截图
- 29. phantomjs的屏幕截图并不准确,因为它在浏览器中看到
- 30. 如何获取Delphi XE2/Firemonkey中ChromiumEmbedded浏览器的屏幕截图?
好像你可以使用'subprocess'来调用运行Grab应用程序的苹果脚本,但可能有一种我不知道的更优雅的方式。 –