4

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

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

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

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

4

2 回答 2

1

你不能。

不同的驱动实现截图的方式不同,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 函数。 状态:按预期工作

于 2013-04-05T15:28:57.513 回答
0

尝试这个:

EventFiringWebDriver efDriver = new EventFiringWebDriver(driver);
File scrFile = efDriver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(File_Location));
于 2013-04-03T08:49:20.357 回答