Java+Selenium 自动化测试-截屏

今天学到了可以通过TakesScreenshot接口来实现截屏,在做自动化测试的时候,可以直接把抛出异常或跟期望结果不匹配时把页面截屏下来,方便后面查看定位,这个方法简单又实用。

直接上代码:

package JiepinTest;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

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.firefox.FirefoxDriver;
public class JiepinDemo {
    
    private static WebDriver driver;
    
    /**
     * 此方法用于生成图片到具体目录,图片名称:浏览器标题+日期
     * @param screenShot
     * @param driver
     */
    public void takeScreenshot(TakesScreenshot screenShot,WebDriver driver) {
        Date now = new Date();
        SimpleDateFormat f = new SimpleDateFormat("yyyyMMddHHmmss");
        String str = f.format(now);
        
        File tempFile = null;
        File destFile = null; 
        
         //打开网页时截屏并在D://backup位置生成test1.jpg
        tempFile = screenShot.getScreenshotAs(OutputType.FILE);
        destFile = new File("D://backup//"+driver.getTitle()+"_"+str+".jpg");
        try {
            FileUtils.copyFile(tempFile, destFile);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
     
    public static void main(String[] args) throws IOException {
        
         System.setProperty("webdriver.gecko.driver", "D:\\selenium-java-3.4.0\\geckodriver.exe");
          //指定浏览器安装路径
          System.setProperty("webdriver.firefox.bin","D:\\firefox-52.0.win64.sdk\\firefox-sdk\\bin\\firefox.exe");

          //打开浏览器
          driver =  new FirefoxDriver();          
          driver.get("http://baidu.com");
          driver.manage().window().maximize();
          
          //声明截屏接口对象screenShot
          TakesScreenshot screenShot = (TakesScreenshot) driver;
          
          //调用上面的方法截屏
          JiepinDemo demo = new JiepinDemo();
          demo.takeScreenshot(screenShot,driver);
          
          driver.quit();
    }
    


}

 

执行上诉代码后,在本地D:\backup目录下生成了图片

Java+Selenium 自动化测试-截屏_第1张图片

你可能感兴趣的:(selenium)