當我使用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應用程序的蘋果腳本,但可能有一種我不知道的更優雅的方式。 –