Ошибка “RasterFormatException: (y + height) is outside of Raster” при попытке сделать скриншот элемента

173
25 декабря 2018, 04:20
    driver.get("https://www.rbc.ru/");
    WebElement ele = driver.findElement(By.cssSelector(".footer"));

    File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    BufferedImage  fullImg = ImageIO.read(screenshot);
    System.out.println("fullImg " + fullImg);

    Point point = ele.getLocation();
    System.out.println("point " + point);
    int eleWidth = ele.getSize().getWidth();
    int eleHeight = ele.getSize().getHeight();
    System.out.println("eleWidth " + eleWidth);
    System.out.println("eleHeight " + eleHeight);
    BufferedImage eleScreenshot= fullImg.getSubimage(point.getX(), point.getY(),
            eleWidth, eleHeight);
    ImageIO.write(eleScreenshot, "png", screenshot);
    File screenshotLocation = new File("C:\\images\\GoogleLogo_screenshot.png");
    FileUtils.copyFile(screenshot, screenshotLocation);

Сообщения в консоли:

"C:\Program Files\Java\jdk-10.0.1\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.1.4\lib\idea_rt.jar=52650:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.1.4\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\nkrotov\IdeaProjects\Test2\out\production\Test2;C:\Drova\selenium-server-standalone-3.8.0.jar;C:\Drova\ashot-1.5.3.jar Test

Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 34760

Only local connections are allowed.

сент. 13, 2018 10:01:27 ПП org.openqa.selenium.remote.ProtocolHandshake createSession

INFO: Detected dialect: OSS

fullImgBufferedImage@1d3ac898: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space = java.awt.color.ICC_ColorSpace@2f17e30d transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width = 937 height = 902 #numDataElements 4 dataOff[0] = 3

point (0, 14113)

eleWidth 1000

eleHeight 567

Exception in thread "main" java.awt.image.RasterFormatException: (x + width) is outside of Raster at java.desktop/sun.awt.image.ByteInterleavedRaster.createWritableChild(ByteInterleavedRaster.java:1240) at java.desktop/java.awt.image.BufferedImage.getSubimage(BufferedImage.java:1202) at Test.main(Test.java:44)

Process finished with exit code 1

Перенос видимой области экрана через JS или через Actions moveToElement не помогает.

READ ALSO
Обновление файлов css/js

Обновление файлов css/js

Есть молодой сайт, на котором приходится постоянно обновлять файлыИспользуется фреймворк Flask

197
Grid, обтекание блоков

Grid, обтекание блоков

Построена сетка из двух колонок, но с разной высотой, к примеру товары в две колонкиПодскажите, как сделать с помощью свойства display: grid, чтобы...

151
Как получить определённые данные?

Как получить определённые данные?

я пропарсил данные с запроса, и получил их, как достать нужное значение всех?

177
Canvas. Рисование

Canvas. Рисование

Хотел сделать на jsfiddle фидл, в котором рисуется квадрат каждый раз меняя свое направлениеНо мне не очень нравится его поведение:

210