@flerry

Как взять скриншот элемента правильно?

Здравствуйте. На сайте понадобилось заскринить каптчу, причем со страницы именно её. Вот страница:
BfvSI.png

Вот элемент, который надо заскринить:
8EJYA.png

Код, которым я забираю скрин, выглядит вот так:

WebElement element = driver.findElement(By.cssSelector("#wizard > div > div.ofm-forms.autoba-addlot.step.step3 > div.ofm-forms-captcha > div"));

    File screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

    int ImageWidth = element.getSize().getWidth();

    int ImageHeight = element.getSize().getHeight();

    Point point = element.getLocation();
    int xcord = point.getX();
    int ycord = point.getY();

    BufferedImage img = ImageIO.read(screen);

    BufferedImage dest = img.getSubimage(xcord, ycord, ImageWidth, ImageHeight);
    ImageIO.write(dest, "png", screen);

    FileUtils.copyFile(screen, new File("captcha.png"));


После взятия элемента, вылетает exception:

Exception in thread "main" java.awt.image.RasterFormatException: (y + height) is outside of Raster
at sun.awt.image.ByteInterleavedRaster.createWritableChild(ByteInterleavedRaster.java:1248)
at java.awt.image.BufferedImage.getSubimage(BufferedImage.java:1202)
at Main.upBlank(Main.java:199)
at Main.main(Main.java:58)


Я все никак не могу его исправить. Кстати, значения, которые получаются, выглядят так:

x = 459 y = 1034 widt = 130 height = 60

P/s Заранее благодарен за ответ!
  • Вопрос задан
  • 433 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы