如何使用selenium webdriver获取相同大小的屏幕截图?

时间:2013-04-02 23:10:01

标签: screenshot selenium-webdriver

我正在尝试使用Selenium Webdriver截取屏幕截图。

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

现在的问题是,对于IE和Firefox,即使我设置窗口的尺寸,屏幕截图的大小也不同。

有人可以给我建议如何为所有浏览器获取相同大小的屏幕截图?

2 个答案:

答案 0 :(得分:0)

试试这个:

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

答案 1 :(得分:0)

你不能。

不同的驱动程序以不同的方式实现截图,IEDriver将根据IE的版本生成不同的大小。

此处出现了一系列错误,这可能会告诉您所有需要了解并验证此答案的内容:

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