2011-11-01 65 views
5

我正在使用watir-webdriver瀏覽我的網站並在不同的瀏覽器中抓取屏幕截圖。watir-webdriver黑屏截圖

有時在IE瀏覽器中截取的屏幕截圖顯示正確的大小,但顏色完全是黑色的。同時運行的firefox測試看起來很好。

browser.driver.save_screenshot(screenshot_dir) 

一旦我遠程桌面運行測試的計算機的IE瀏覽器的屏幕截圖再次看起來不錯。離開遠程桌面後,IE屏幕截圖再次變黑。

我在運行在ec2上的Windows Server實例上運行這些測試。

回答

5

根據您的評論,遠程訪問該機器解決了一小會兒的問題...禁用該框上的屏幕保護程序。我不確定IE和FF的截圖功能如何(如果有的話)有所不同,但值得花些時間來測試這些變化。

編輯:我仍然覺得它的窗口/電源設置相關,當你登錄框顯示有效果,但我不知道具體可能是什麼。我在vvv下面嘗試了一個編程方法。

+0

好的直覺,看看這是否是問題會很有趣 –

+1

這個問題發生在我身上,如果屏幕鎖定了,所以我還要確保將電源設置設置爲保持顯示器打開。 – kinofrost

+0

關閉屏幕保護程序是我第一次嘗試...... :( 好主意,雖然 – will

0

這裏是我用來捕捉屏幕截圖的代碼(Watir-Webdriver,Cucumber)。我使用遠程Windows XP虛擬機作爲我的測試盒,並沒有遇到使用Firefox或Internet Explorer的問題。

我們確實發現,當您使用嵌入式屏幕截圖查看日誌時,它在IE中似乎不起作用 - 因此您必須使用Firefox進行查看。這是base64,所以似乎沒有這樣的合乎邏輯的原因。

After do |scenario| 
    if scenario.failed? 
     encoded_img = @browser.driver.screenshot_as(:base64) 
     embed("data:image/png;base64,#{encoded_img}", 'image/png') 
    end # 
end 
+0

你試過了32位和64位版本的IE? –

+0

我有,但我不確定OP。Win7 64位,XP 32位 –

+0

我指的是瀏覽器,在64位操作系統上,你通常會有一個32位版本的IE默認打開,還有一個64位版本可以調用。開始=>所有程序,看看列表頂部附近,你會看到兩個版本都顯示。我的想法是,64位版本可能會更好地查看你只能在FF –

1

從你所說的話,它聽起來像Windows系統自動鎖定,就像它應該。這可以解釋爲什麼在遠程進入時屏幕截圖能夠正常工作,而當屏幕保護程序啓動並鎖定系統時,幾分鐘後會變黑。

如果Windows系統被鎖定,屏幕截圖將會變黑。這是Windows安全功能。

我很想知道FF是否真的在鎖定的系統上執行屏幕截圖。

+1

我開始將測試作爲服務運行(不會在幾天內登錄到計算機)。 FF測試仍然有效。 – will