Selenium+java - 截圖操作


寫在前面

自動化測試過程中,運行失敗截圖可以很好的幫我們定位問題,因此,截圖操作也是我們自動化測試中的一個重要環節。

截圖方法

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();
        }
    }

效果如下

以上就是關於截圖的常用方法,僅供參考,如果覺得好,可以關注我哦!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM