JAVA Selenium Webdriver 在屏幕截图中捕获了错误的区域

JAVA Selenium Webdriver Capturing wrong region in the screenshot

我正在使用 selenium Web Driver(Java) 来自动化我们的 Web 应用程序。 我需要捕获并比较所有浏览器中应用程序的每个图标。

首先,我在 Firefox 中打开应用程序并使用其 xpath 捕获图标图像,然后将它们保存在特定路径中。 稍后在另一个浏览器中打开应用程序时比较保存的图像。

为此我使用了下面的代码来捕捉图像,但是元素图像没有捕捉到,屏幕上的一些未知区域正在保存。

请帮忙,如何获得元素的正确图像。

File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
BufferedImage  fullImg = ImageIO.read(screenshot);
Point point = x.getLocation();
//Get width and height of the element
int eleWidth = x.getSize().getWidth();
int eleHeight = x.getSize().getHeight();
Rectangle rect = new Rectangle(point.getX(),point.getY(),eleWidth, eleHeight);
//Crop the entire page screenshot to get only element screenshot
BufferedImage eleScreenshot= fullImg.getSubimage(point.getX(), point.getY(), rect.width, rect.height);
ImageIO.write(eleScreenshot, "png", screenshot);
//Copy the element screenshot to disk
FileUtils.copyFile(screenshot, new File("E:\ICONS\Icon1.jpg"));
    driver.switchTo().defaultContent();
    driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='CWinBtn']")));
    WebElement ele =driver.findElement(By.xpath("//*[@id='CCDLinkedformToolbar_cmdPrint']"));
    try{         
    File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    BufferedImage  fullImg = ImageIO.read(screenshot);
    Point point = ele.getLocation();
    int eleWidth = ele.getSize().getWidth();
    int eleHeight = ele.getSize().getHeight();
    BufferedImage eleScreenshot= fullImg.getSubimage(point.getX()+30, 95, eleWidth, eleHeight);
    ImageIO.write(eleScreenshot, "png", screenshot);
    FileUtils.copyFile(screenshot, new File("E:\ ICONS\Icon1.png"));
    }
    catch(Exception e){
         e.printStackTrace();
    }

我对以前的代码所做的更改是,根据我的应用程序分辨率,将值添加到 X 坐标并将静态值传递到 Y 坐标。