频道栏目
首页 > 资讯 > Java > 正文

JavaSelenium的截图对比代码

17-03-30        来源:[db:作者]  
收藏   我要投稿

JavaSelenium的截图对比代码。

package com.gloryroad.testcase;

import java.awt.image.BufferedImage;

import java.awt.image.DataBuffer;

import java.io.File;

import java.io.IOException;

import java.util.concurrent.TimeUnit;

import java.util.zip.Inflater;

import javax.imageio.ImageIO;

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;

import org.testng.Assert;

import org.testng.annotations.AfterMethod;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.Test;

public class TestCompareImage {

String url="http://www.baidu.com";

public WebDriver driver;

@BeforeMethod

public void setUp(){

driver=new FirefoxDriver();

driver.get(url);

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

}

@AfterMethod

public void tearDown(){

driver.close();

}

@Test

public void compareScreen() throws IOException{

File screenShot=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

File target=new File("resource/sogou_actual.png");

FileUtils.copyFile(screenShot, target);

File fileA=new File("resource/sogou_actual.png");

File fileB=new File("resource/sogou_expect.png");

BufferedImage dataInput=ImageIO.read(fileA);

DataBuffer bufferFileA=dataInput.getData().getDataBuffer();

int FileA=bufferFileA.getSize();

BufferedImage dataOutPut=ImageIO.read(fileB);

DataBuffer bufferFileB=dataOutPut.getData().getDataBuffer();

int FileB=bufferFileB.getSize();

Boolean matchimg=true;

if (FileA==FileB) {

for (int i = 0; i < FileA; i++) {

if (bufferFileA.getElem(i)!=bufferFileB.getElem(i)) {

matchimg=false;

break;

}

}

}else {

matchimg=false;

}

Assert.assertTrue(matchimg, "截图不一样了");

}

}

相关TAG标签
上一篇:Selenium执行操作时高亮对象
下一篇:基于测试驱动开发思想编一个多线程下载的项目(上)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站