2010-02-26 221 views
2

我正在使用testng執行selenium測試,這是通過selenium RC通過hudson(使用ssh連接)在遠程系統上啓動的。遠程系統是安裝了MKS Toolkit的windows xp,因此是ssh。測試不作爲Windows服務執行。使用selenium捕獲黑色圖像。捕捉屏幕截圖

我試過使用captureScreenshot和captureEntirePageScreenshot方法。第一個總是產生一個黑色的圖像。第二個創建正確的屏幕截圖,但它只適用於Firefox,我們的測試通常通過Firefox並在其他瀏覽器中失敗,因此捕獲其他瀏覽器(主要是IE和Safari)的屏幕截圖至關重要。測試並行運行,同時打開許多瀏覽器窗口。如果這是造成問題的原因,我不確定。任何想法將不勝感激。

回答

2

Selenium中的不幸屏幕截圖從非Firefox瀏覽器開始就存在問題。這是我們Selenium開發人員一直在努力糾正的問題。

最新的工作已經更新Snapsie在IE中工作。有一個博客文章http://blog.codecentric.de/en/2010/02/remote-screenshots-mit-selenium-und-dem-robot-framework/解釋發生了什麼。

我注意到,如果屏幕沒有激活,即屏幕保護程序已經踢入,它可以可以產生黑色的截圖。

編輯:

我只是有一個想法。您始終可以運行Castro來錄製您的測試視頻,然後觀看它播放。這是SauceLabs用來在雲中運行Selenium的東西。

+0

謝謝指點。看起來像在非自動執行中使用非Firefox瀏覽器的屏幕截圖沒有解決方案(當用戶沒有主動登錄時)。這不好。 我會檢查卡斯特羅... – Lidia 2010-03-03 01:12:54

+0

嗯......卡斯特羅是一個蟒蛇圖書館。我們不使用python。我們的測試是用java(testng)編寫的。 – Lidia 2010-03-03 01:15:39

+0

你可以使用jython(Java的Python實現)調用它。我只使用過IronPython(我是.NET,並且讓它工作) – AutomatedTester 2010-03-03 10:50:51

1

爲此編寫一個方法,並調用無論你需要截圖。使用已在硒中使用的java.awt包。例如,check this site

1

設置的Windows自動登錄和啓動過程並不像Windows服務後,我發現瞭如何通過創建斷開RDP一個批處理文件來解決與黑色屏幕截圖的遠程桌面 IEDriverServer.exe的問題, ,而不是用常規的X按鈕關閉RDP會話:

%windir%\system32\tscon.exe %SESSIONNAME% /dest:console 

看到更多細節在這裏: https://stackoverflow.com/a/24529629/658497

(雖然,我寧願有一種方式來運行它作爲默認操作,當用X Windows按鈕終止RDP會話時)。