硒/ JAVA图像比较

问题描述:

目前,我的代码需要一些分辨率的截图。我想让所有图像与最后捕获的图​​像共存。硒/ JAVA图像比较

我的代码截取屏幕截图。现在我想做一些与分辨率文件夹和当前图像文件夹的最后一个列表比较,并生成图像哪里程序将标记什么是不同的。任何帮助将被通知。

@Test 
public void testResolution() throws InterruptedException 
{ 
    this.url = "https://www.google.com"; 
    driver.get(this.url); 
    driver.navigate().to(this.url); 
    String[] resulutions = { "1366x768" , "360x640" , "768x1024" , "375x667" , "1920x1080" , "320x568" , "1600x900" , "1280x800" , 
      "1440x900" , "1536x864" , "414x736" , "1280x1024" , "1280x720" , "1440x900" , "1680x1050" , "1024x768" , "1920x1080" , 
      "1280x800" , "1024x768" , "1280x800" , "412x732" , "320x534" , "320x570" , "1093x614", }; 

      // add resolution 

    for (String resulution : resulutions) 
    {  
     String[] parts = resulution.split("x");  
     // Screen resolution 
     Dimension screenRes = new Dimension(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]));      
     // Set browser resolution 
     driver.manage().window().setSize(screenRes); 
     driver.navigate().refresh(); 
     Thread.sleep(3000); 
     this.takeScreenShot(resulution); 
    } 
} 

/** 
* 
* @param fileName 
*/ 

private void takeScreenShot(String fileName) 
{  
    File screenShot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); 
    try { 
     //FileUtils.copyFile(screenShot, new File("Old"+fileName+"/"+fileName+ ".png")); 
     //FileUtils.copyFile(screenShot, new File("E:\\Faysal_test/"+fileName+"/"+fileName+ ".png")); 
     FileUtils.copyFile(screenShot, new File("D:\\Automation/VRS/vrs-resolution/Screenshot/new/"+fileName+"/"+fileName+ ".png")); 

    } catch (IOException ioe) { 
     throw new RuntimeException(ioe.getMessage(), ioe); 
    } 
} 

@Test 

public void testResolutionold() throws InterruptedException 
{ 

    this.url = "https://www.rentalhomes.com/property/extended-stay-america-billings-west-end/BC-517037"; 
    driver.get(this.url); 
    driver.navigate().to(this.url); 
    String[] resulutions = { "1366x768" , "360x640" , "768x1024" , "375x667" , "1920x1080" , "320x568" , "1600x900" , "1280x800" , 
      "1440x900" , "1536x864" , "414x736" , "1280x1024" , "1280x720" , "1440x900" , "1680x1050" , "1024x768" , "1920x1080" , 
      "1280x800" , "1024x768" , "1280x800" , "412x732" , "320x534" , "320x570" , "1093x614",}; 
      // add resolution  
    for (String resulution : resulutions) 
    { 

     String[] parts = resulution.split("x"); 

     // Screen resolution 
     Dimension screenRes = new Dimension(Integer.parseInt(parts[0]), Integer.parseInt(parts[1])); 


     // Set browser resolution 
     driver.manage().window().setSize(screenRes); 
     driver.navigate().refresh(); 
     Thread.sleep(3000); 
     this.takeScreenShotold(resulution); 
    } 

} 

/** 
* 
* @param fileName 
*/ 

private void takeScreenShotold(String fileName) 
{ 

    File screenShot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); 
    try { 
     //FileUtils.copyFile(screenShot, new File("Old"+fileName+"/"+fileName+ ".png")); 
     //FileUtils.copyFile(screenShot, new File("E:\\Faysal_test/"+fileName+"/"+fileName+ ".png")); 
     FileUtils.copyFile(screenShot, new File("D:\\Automation/VRS/vrs-resolution/Screenshot/old/"+fileName+"/"+fileName+ ".png")); 

    } catch (IOException ioe) { 
     throw new RuntimeException(ioe.getMessage(), ioe); 
    } 
} 
+0

[将图像与实际屏幕进行比较]可能存在重复(https://*.com/questions/20661250/compare-image-to-actual-screen) – JeffC

查看OpenCV库。你可以找到你需要的东西。看看如何比较图像here