寫在前面
自動化測試過程中,運行失敗截圖可以很好的幫我們定位問題,因此,截圖操作也是我們自動化測試中的一個重要環節。
截圖方法
1、通過截圖類TakeScreenshout實現截圖
特點:截取瀏覽器窗體內的內容,不包括瀏覽器的菜單和桌面的任務欄區域
具體示例代碼如下:
public void testScreenshoutByTakesScreenshot() { driver.manage().window().maximize(); driver.get("https://www.cnblogs.com/longronglang"); driver.manage().window().maximize(); //執行屏幕截圖操作 File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); //通過FileUtils中的copyFile()方法保存getScreenshotAs()返回的文件;"屏幕截圖"即時保存截圖的文件夾 try { FileUtils.copyFile(srcFile, new File("D:\\screenshot\\通過TakesScreenshot截圖.jpg")); } catch (IOException e) { e.printStackTrace(); } }
2、通過Robot對象截屏
特點:截取瀏覽器窗體內的內容及瀏覽器的菜單和桌面的任務欄區域
具體示例代碼如下:
/** * 通過Robot實現實現截圖 */ @Test public void testScreenshoutByRobot() { driver.manage().window().maximize(); driver.get("https://www.cnblogs.com/longronglang"); driver.manage().window().maximize(); //調用截圖方法 BufferedImage img = null; try { img = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize())); ImageIO.write(img, "jpg", new File("D:\\screenshot\\通過Robot截圖.jpg")); } catch (AWTException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } }
3、截取目標區域圖片
特點:可指定元素及區域大小截圖
具體示例代碼如下:
/** * 通過指定元素及區域大小截圖 */ @Test public void testScreenshoutByElement() { driver.get("https://www.cnblogs.com/longronglang"); //獲取頁面看板娘元素 WebElement element = driver.findElement(By.cssSelector("[width='180px']")); try { FileUtils.copyFile(captureElement(element), new File("D:\\screenshot\\通過element元素及區域大小截圖.jpg")); } catch (Exception e) { e.printStackTrace(); } }
效果如下
以上就是關於截圖的常用方法,僅供參考,如果覺得好,可以關注我哦!