2012-12-05 82 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方法可以做到這一點。 –

相關問題