自己的代码记录一下
导入
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.4.1</version>
</dependency>
解压tess4j 包 取出 tessdata 文件夹 放到src/test/resources下面。
private static String doOCR() throws Exception {
WebElement element = driver.findElement(By.xpath("//div[@class='validCode']"));
//获取整页屏幕截图
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
BufferedImage fullImg = ImageIO.read(screenshot);
//获取元素在页面上的位置
Point point = element.getLocation();
//获取元素的宽度和高度
int eleWidth = element.getSize().getWidth();
int eleHeight = element.getSize().getHeight();
//裁剪整个页面截图以仅获取元素截图
BufferedImage eleScreenshot= fullImg.getSubimage(point.getX(), point.getY(),
eleWidth, eleHeight);
ImageIO.write(eleScreenshot, "png", screenshot);
//将元素截图复制到磁盘
long imageName = ToolUtil.getNowUTC();
File screenshotLocation = new File("C:\\Screen",imageName+".png");
FileUtils.copyFile(screenshot, screenshotLocation);
//识别验证码
ITesseract instance = new Tesseract();//调用Tesseract
String tesspath = System.getProperty("user.dir");
instance.setDatapath(tesspath + "/src/test/resources/tessdata");//进行读取,默认是英文,如果要使用中文包,加上instance.setLanguage("chi_sim");
String code = instance.doOCR(screenshotLocation);
return code;
}