public static String getValidCode() throws IOException {
byte[] screenshot = null;
screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);// 得到截图
BufferedImage originalImage = ImageIO.read(new ByteArrayInputStream(screenshot));
WebElement element = driver.findElement(By.id("LoginImgVerifyCode"));
Dimension size = element.getSize();
Rectangle rect = new Rectangle(element.getLocation().x, element.getLocation().y, size.getWidth(), size.getHeight());
ITesseract instance = new Tesseract();
instance.setDatapath("./tessdata"); //解压tess4j-4.3.0.jar包,拷贝tessdata目录到工程根目录下
String result = null;
try {
result = instance.doOCR(originalImage, rect);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
return result.trim();
}
Maven工程所需要的jar包
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.5.3</version>
</dependency>