2017-08-17 8 views
0

現在、私のコードはいくつかの解像度のスクリーンショットを取っています。セレン/ 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://stackoverflow.com/questions/20661250/compare-image-to-actual-screen)の可能な複製 – JeffC

答えて

0

OpenCVのライブラリを確認してください。必要なものを見つけることができます。画像を比較する方法の例を探しhereしてください。