java selenium tess4j 截部分图 识别验证码

自己的代码记录一下

导入

 

<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;
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值