使用場(chǎng)景
WebUI自動(dòng)化測(cè)試框架中錯(cuò)誤截圖方法,需要進(jìn)行全屏幕截取or當(dāng)前窗口截取
解決方案
導(dǎo)入Ashot的maven依賴(lài)只恨,使用Ashot不同的截圖策略
<!-- https://mvnrepository.com/artifact/ru.yandex.qatools.ashot/ashot -->
<dependency>
<groupId>ru.yandex.qatools.ashot</groupId>
<artifactId>ashot</artifactId>
<version>1.5.4</version>
</dependency>
代碼
如下
public void takeScreenShot(WebDriver driver) {
String screenshotfolder = "./output/errorScreenShot";
String timestamp = String.join("_", sdf.format(Date()))
try {
if(!new File(screenshotfolder.exists())){
new File(screenshotfolder).mkdir(); //如果文件路徑不存在译仗,就新建一個(gè)文件路徑
}
AShot ashot = new AShot(); //需要import ru.yandex.qatools.ashot.Ashot及Screenshot
//ashot.coordsProvider(new WebDriverCoordsProvider()).shootingStrategies.viewportPasting(1000)); //滾動(dòng)以全屏截圖
Screenshot currentScreen = ashot.takeScreenshot(driver); //截圖當(dāng)前窗口顯示內(nèi)容
ImageIO.write(currentScreen.getImage(),"PNG", new File(screenshotfolder+"/" + timestamps +".png"));
} catch (IOException e) {
e.printStackTrace();
}
}