《手把手教你》系列技巧篇(五十九)-java+ selenium自動化測試 - 截圖三劍客 -上篇(詳細教程)


1.簡介

  今天本來是要介紹遠程測試的相關內容的,但是宏哥在操作服務器的時候干了件糊塗的事,事情經過是這樣的:本來申請好的Windows服務器用來做演示的,可是服務器可能是局域網的,連百度都不能訪問,宏哥想調試一下網絡,禁用網卡,然后重啟網卡,結果禁用后就連不上了。。。。就只能等服務器分配的管理員在物理機操作了,他給我分配的估計是虛擬機的服務器。唉,不能演示了,那么宏哥就來介紹java+ selenium自動化測試截圖操作的實現,大致分為三篇,每篇介紹一種截圖方法,你喜歡那種就用那種。那么宏哥今天就介紹第一劍客-TakeScreenshout。

2.TakeScreenshout

  TakeScreenshout是selenium工具自帶的截圖方法(截圖類),這個類主要是獲取瀏覽器窗體內的內容,不包括瀏覽器的菜單和桌面的任務欄區域,我們用百度首頁來截圖,看看截圖效果。

3.測試場景

具體步驟就是:

(1)訪問度娘首頁

(2)調用截圖類截圖

(3)保存截圖

4.自動化實戰

4.1代碼設計

FileUtils.copyFile(srcFile, new File("Screenshots", time + ".png"));“屏幕截圖”是我們自己創建的文件夾用來存放截圖文件,此文件夾在project(工程)的更目錄,如下圖所示:

當然也是可以設置保存到其他目錄下:FileUtils.copyFile(srcFile, new File("D:\\資料圖片", time + ".png"));

示例代碼如下圖所示:

4.2參考代碼

package lessons;

import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-宏哥
 * 
 * @公眾號:北京宏哥
 * 
 * @《手把手教你》系列技巧篇(六十)-java+ selenium自動化測試 - 截圖三劍客 -上篇(詳細教程)
 *
 * @2022年01月07日
 */
public class TakeScreenshot {
    
    public static void main(String[] args) throws Exception {  
            
            System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");  
               
            WebDriver driver = new ChromeDriver();  
         
            driver.manage().window().maximize();  
           
            driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
              
            driver.get("https://www.baidu.com");  
           
            Thread.sleep(1000);
            
            // 調用截圖方法
            File src= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
            /**
             * 截屏操作
             * 圖片已當前時間命名
             */
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); //轉換時間格式
            String time = dateFormat.format(Calendar.getInstance().getTime()); //獲取當前時間
            try {
                // 拷貝截圖文件到我們項目./Screenshots
                FileUtils.copyFile(src, new File("Screenshots", time + ".png"));
                Thread.sleep(3000);
                System.out.println("browser will be close");
                driver.quit();
            }catch (IOException e){
                
                System.out.println(e.getMessage());
             
            }
          
    }

}

4.3運行代碼

1.運行代碼,右鍵Run AS->Java Appliance,控制台輸出,如下圖所示:

2.文件保存結果及預覽,如下圖所示:

3.運行代碼后電腦端的瀏覽器的動作,如下小視頻所示:

5.小結

  這個自帶的方法無論你建沒有建那個文件夾,如果有會將截圖放在文件夾下,如果沒有,會自動創建你代碼中的文件夾,然后將截圖放入。


免責聲明!

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



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