2011-11-06 74 views
0

我正在嘗試捕獲正在測試的Web應用程序的內容區域的圖像。捕獲內容幀的圖像/彈出

我需要消除我的圖片瀏覽器菜單,使用戶可以不同的主持人瀏覽器之間內容的圖像。

這應該在任何電腦的分辨率和在任何瀏覽器上運行。

給定的硒的方法提供了一種方式,以捕獲整個窗口:

Selenium.CaptureScreenshot(filename), 
Selenium.CaptureEntirePageScreenshot(filename,kwargs) 

還試圖計算幀硒的大小給予相對於瀏覽器框架的像素數,這意味着(0,0)是當瀏覽器的左上角不是屏幕。

我如何能捕捉利用與硒結合.NET的相關內容區域?

+0

當我使用第一個硒時,CaptureScreenshot對我無效。爲了讓硒工作,我想要我必須使用硒webdriver。 也許試試這裏:http://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver – deadfish

回答

1

我帕特森同意使用的,而不是CaptureEntirePageScreenshot CaptureEntirePageScreenshotToString。

其次,爲了比較,您需要任何比較兩個圖像或部分圖像的圖像比較工具,例如ISFW爲Java實現提供了ImageCompareUtil。 在你的情況下,你需要比較捕獲圖像的一部分和第一部分。 如果是FF,那麼你仍然需要一些用於前置瀏覽器的邏輯,所捕獲的圖像將包括整個頁面內容,而在IE的情況下它只包括可見內容。

對於不同的分辨率,您可以捕獲屏幕快照之前調整瀏覽器窗口預期的分辨率。

希望這會有所幫助。

0

聽起來像是你已經知道答案。我們使用Selenium.CaptureEntirePageScreenshotToString(),因爲我們運行測試的方式可能沒有瀏覽器和測試腳本在同一個系統上運行,但它在覈心上使用的代碼與Selenium.CaptureEntirePageScreenshot()相同。唯一的區別是我們的方式返回一個BASE64編碼的PNG圖像,所以我們不必從磁盤中獲取它。