0
点赞
收藏
分享

微信扫一扫

JavaSelenium的截图对比代码

天行五煞 2022-08-02 阅读 56

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, "截图不一样了");


}





}

举报

相关推荐

0 条评论