2013-04-02 47 views
3

我想用Selenium Webdriver截圖。如何使用selenium webdriver獲取相同大小的屏幕截圖?

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
FileUtils.copyFile(scrFile, new File(File_Location)); 

現在的問題是,即使我設置窗口的尺寸,IE和Firefox的截圖大小不同。

有人可以給我建議我怎樣才能得到所有瀏覽器相同大小的截圖?

回答

0

試試這個:

EventFiringWebDriver efDriver = new EventFiringWebDriver(driver); 
File scrFile = efDriver.getScreenshotAs(OutputType.FILE); 
FileUtils.copyFile(scrFile, new File(File_Location)); 
+0

我試過這段代碼,但仍然得到不同大小的屏幕截圖。 – Kevin

+0

其他人有一些建議? – Kevin

0

你不能。

不同的驅動程序以不同的方式實現屏幕截圖,IEDriver會根據IE版本產生不同的尺寸。

已經有一系列關於本次募集的bug,這其中很可能會告訴你所有你需要知道並確認這個答案:

https://code.google.com/p/selenium/issues/detail?id=5332&can=1&q=screenshot%20size&colspec=ID%20Stars%20Type%20Status%20Priority%20Milestone%20Owner%20Summary

具體

項目成員# 3 james.h .... @ gmail.com當前屏幕截圖 WebDriver API表示全屏截圖。與其他瀏覽器不同, 獲取IE渲染整個頁面的唯一方法是讓IE窗口 足夠大以繪製整個頁面。換句話說,要調整 窗口的大小。對於IE瀏覽器,我們必須採用調整大小的方式,或者不採取 全屏截圖。這是IE的限制; IE驅動程序無法爲其解決任何問題。如果您想僅拍攝可見視口的屏幕截圖 ,而無需調整大小,則可以使用Windows API PrintWindow函數 。 狀態:WorkingAsIntended

+0

我嘗試調整窗口大小,但沒有運氣。我仍然得到不同大小的圖像。另外如何在java中實現PrintWindow函數。你能否提供我能看到的一小段代碼。 – Kevin

+0

我想我不清楚,沒有把我的答案的第一行放在48pt粗體中...... **你不能**得到一致大小的截圖。除非您在驅動瀏覽器的計算機上運行測試,否則使用Java Robot類將無濟於事。 – Ardesco

+0

我正在嘗試關注項目成員評論「對於IE,我們必須以調整大小來生活」。我的錯! – Kevin

相關問題