第一种:Selenium之TakesScreenshot
该方法可以只截取自动化运行的浏览器窗口内,不会截取浏览器的操作按钮和系统的任务栏区域。
public static void screenshotWebPage(WebDriver driver, Integer tagId){
// 调用截图方法
File src= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
// 拷贝截图文件到我们项目./Screenshots
FileUtils.copyFile(src, new File("/Users/chenxia/Documents/Screenshots/screen-"+tagId+".png"));
System.out.println(tagId+"截图完成!");
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
}
第二种:通过Robot截图
该方法会截取屏幕内的所有内容,包括系统自带的任务栏以及浏览器的导航栏和操作菜单。
public static void screenshotByRobotFullScreen(Integer tagId){
BufferedImage image = null;
try {
image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(image, "jpg", new File("/Users/chenxia/Documents/Screenshots/screen-"+tagId+".png"));
System.out.println(tagId+"截图完成!");
} catch (AWTException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}