Saturday, May 30, 2020

Image Comparison in Selenium Using aShot third party jar



Add   ashot Dependency 


    ru.yandex.qatools.ashot
    ashot
    1.5.3


Take a screenshort of ur image 

WebElement myWebElement = webDriver.findElement(By.cssSelector("#my_element"));
new AShot()

  .takeScreenshot(webDriver, myWebElement);


Compare with actual image using imagediff


ImageDiff diff = new ImageDiffer().makeDiff(myScreenshot, anotherScreenshot);

BufferedImage diffImage = diff.getMarkedImage();




import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import ru.yandex.qatools.ashot.AShot;
import ru.yandex.qatools.ashot.Screenshot;
import ru.yandex.qatools.ashot.comparison.ImageDiff;
import ru.yandex.qatools.ashot.comparison.ImageDiffer;
import ru.yandex.qatools.ashot.coordinates.WebDriverCoordsProvider;
public class Image_Comparsion
{
public static void main(String args[]) throws Exception
{
System.setProperty("webdriver.chrome.driver","D://Chrome Driver 2.38//chromedriver_win32//chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
WebElement logoImage = driver.findElement(By.xpath("//img[@id='hplogo']"));
BufferedImage expectedImage = ImageIO.read(new File(System.getProperty("user.dir") +"\\Images\\googleLogo.png"));
Screenshot logoImageScreenshot = new AShot().coordsProvider(new WebDriverCoordsProvider()).takeScreenshot(driver, logoImage);
BufferedImage actualImage = logoImageScreenshot.getImage();
ImageDiffer imgDiff = new ImageDiffer();
ImageDiff diff = imgDiff.makeDiff(actualImage, expectedImage);
Assert.assertFalse(diff.hasDiff(),"Result of Image comparsion");
System.out.println("Images Compared Sucesfully");
}
}

https://www.qaautomation.co.in/2018/11/image-Comparison-in-selenium-using-ashot.html

No comments:

Post a Comment