第一種: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();
}
}