Webelement截图错误

时间:2016-07-21 04:57:35

标签: java selenium-webdriver bufferedimage

使用以下代码,我尝试使用selenium webdriver捕获WebElement的屏幕截图。

    WebElement ele1 = driver.findElement(By.xpath("//*[@id='main']/div[2]/div/div[2]")); 
        File screenshot1 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        BufferedImage  fullImg1 = ImageIO.read(screenshot1);
         Point point1 = ele1.getLocation();
         int eleWidth1 = ele1.getSize().getWidth();
         int eleHeight1 = ele1.getSize().getHeight();
         BufferedImage eleScreenshot1= fullImg1.getSubimage(point1.getX(),  point1.getY(), eleWidth1,
                    eleHeight1);
         ImageIO.write(eleScreenshot1, "png", screenshot1);
         File screenshotLocation1 = new File("D:/personalloan.png");
         FileUtils.copyFile(screenshot1, screens

hotLocation1);

但是,这会给出错误

(y + height)在Raster之外

1 个答案:

答案 0 :(得分:0)

我在使用appium时遇到了这种问题。在那里,我需要旋转元素。但是,当我使用此代码时,它将截取元素的屏幕截图,该元素不会旋转,并且会出现此问题。所以我通过告诉appium始终以横向模式打开图像来解决问题。

我认为这样的事情也会发生在你身上。当你手动检查时,它是一种形式,但是当代码工作时它的形式不同。

所以请正确检查你的元素y坐标。