Здравствуйте. На сайте понадобилось заскринить каптчу, причем со страницы именно её. Вот страница:
Вот элемент, который надо заскринить:
Код, которым я забираю скрин, выглядит вот так:
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 Заранее благодарен за ответ!