selenium和appium框架之截图

一个框架截图很重要,在出错的时候除了查看log外,还有就是查看截图。

selenium的API就有截图的功能:TakeScreenshot。当然Appium用selenium的api也适用。

import java.io.File;

import java.io.IOException;

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;

public class ScreenShot {    public WebDriver driver;    //初始化driver    public ScreenShot(WebDriver driver) {        this.driver = driver;    }    private void takeScreenshot(String screenPath) {        try {            File scrFile = ((TakesScreenshot) driver)                    .getScreenshotAs(OutputType.FILE);            FileUtils.copyFile(scrFile, new File(screenPath));        } catch (IOException e) {            System.out.println("Screen shot error: " + screenPath);        }    }    //截图到指定的路径    public void takeScreenshot() {        String screenName = String.valueOf(new Date().getTime()) + ".jpg";        File dir = new File("test-output/snapshot");        if (!dir.exists())            dir.mkdirs();        String screenPath = dir.getAbsolutePath() + "/" + screenName;        this.takeScreenshot(screenPath);            }}


在具体的测试用例里面调用:

ScreenShot screenshot=new ScreenShot(driver);

screenshot.takeScreenshot();