java Selenium2进行验证码识别
环境java+selenium2+junit4+chrome进行识别验证码
1.首先获取验证码图片的元素xpath既可以
WebElement element = driver.findElement(By.xpath(".//*[@id=‘app’]/div/form/div[2]/div[2]/div[3]/div/img"));//验证码图片识别
2.将识别的验证码图片进行截图保存操作
//获取这个页面图片
java.io.File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
BufferedImage fullImg = ImageIO.read(screenshot);
// Get the location of element on the page
Point point = element.getLocation();
// Get width and height of the element
int eleWidth = element.getSize().getWidth();
int eleHeight = element.getSize().getHeight();
// Crop the entire page screenshot to get only element screenshot
BufferedImage eleScreenshot= fullImg.getSubimage(point.getX(), point.getY(),
eleWidth, eleHeight);
ImageIO.write(eleScreenshot, “png”, screenshot);
// Copy the element screenshot to disk
File screenshotLocation = new File(“D:/yzm/yan.png”);
FileUtils.copyFile(screenshot, screenshotLocation);
3.对保存下来的验证码截图进行识别操作(OCR识别)
@echo off
tesseract.exe D:\yzm\yan.png D:\yzm\result -psm 6
exit
讲该段脚本保存为.bat格式,存放在放图片的文件夹下,然后执行此bat文件
public static String read_yzm() {
String cmd = “cmd /c start D:/yzm/tesseract.bat”;
try {
Runtime.getRuntime().exec(cmd);
} catch (Exception e) {
e.printStackTrace();
}
//线程阻塞6秒等待tesseract.bat执行完成
Thread.sleep(6000);
//执行tesseract.bat识别图片后生成result.txt文件中保存识别后验证码
//读取result.txt文件获取验证码
// ReadTxt
String yzmTxt = readTxt(“D:/yzm/result.txt”);
System.out.println(yzmTxt);
return yzmTxt;
4.下面为读取txt文件的java写法:
public static String readTxt(String txtPath) {
File file = new File(txtPath);
if(file.isFile() && file.exists()){
try {
FileInputStream fileInputStream = new FileInputStream(file);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuffer sb = new StringBuffer();
String text = null;
while((text = bufferedReader.readLine()) != null){
sb.append(text);
}
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
}
return txtPath ;
}
java Selenium2进行验证码识别相关推荐
- java 12306验证码识别_GitHub - sunqipeng-cn/JavaVerify: 用java 编写的验证码识别
基于惯性大水滴滴水算法和支持向量机的验证码识别 Inertial big drop fall algorithm, libsvm Introduction: Functions: 1.Download ...
- java tess4j mave_Java 验证码识别库 Tess4j 学习
Java 验证码识别库 Tess4j 学习 [在用 java 的 Jsoup 做爬虫爬取数据时遇到了验证码识别的问题(基于 maven ),找了网上挺多的资料,发现 Tess4j 可以自动识别验证码, ...
- java 爬中 验证码识别_JAVA爬虫---验证码识别技术(一)
Python中有专门的图像处理技术比如说PIL,可以对验证码一类的图片进行二值化处理,然后对图片进行分割,进行像素点比较得到图片中的数字.这种方案对验证码的处理相对较少,运用相对普遍,很多验证码图片可 ...
- 我的世界java下载慢怎么办_只需要这三步,用Java也能图片识别
作者:不学无数的程序员 最近闲来无事研究了一下用 Java 如何模拟浏览器的行为,在实验登录的步骤时碰到了识别验证码的问题,于是在网上查找了关于 Java 如何进行图片识别验证码,由于根据网上查找的相 ...
- java 识别图片 边框_atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本...
atitit.验证码识别step3----去除边框----图像处理类库 attilax总结java版本 1. 去除边框思路原理 图像裁剪::从图片的Positions.CENTER,wid,hit)裁 ...
- Java 验证码识别之多线程打码兔
验证码识别,爬虫永远的话题~ 用打码兔总体的体验就是单线程速度太慢~ importjava.io.IOException;importjava.net.MalformedURLException;im ...
- 【java】opencv + Tesseract(tess4j) 实现图片处理验证码识别
2022/12/27 有的小伙伴说maven导入不了依赖,加了一种方法,百分百解决. 2022/12/28 写了半天,想去论坛放松休息下,结果看到别人已经有成品了,难受啊马飞,晚点看情况要不要写个搭建 ...
- java ocr 验证码_Ocrking图片识别之Java实现本地验证码的识别 | 学步园
本实例代码为Java实现本地验证码的识别 依赖库为 httpclient-4.2 使用最新的库 需要修改部分代码 Author: niostars@gmail.com //构造一个httpclient ...
- Ocrking图片识别之Java实现本地验证码的识别
最近一个项目需要用到验证码的识别,网上找到了Ocrking的识别平台,就拿来使用一下.平台为Java一下是实现方式: 转载请写明出处: 本实例代码为Java实现本地验证码的识别 依赖库为 httpcl ...
最新文章
- 浅析Spring——控制反转IoC
- Web前端之html_day2
- 产业|嵌入式传感器将是未来机器人等技术增长的核心
- Windows下通过MinGW进行WxWidgets的动态编译与静态编译
- 自由群,外代数和泛包络代数
- Linux 网络层收发包流程及 Netfilter 框架浅析
- SAP成都研究院廖婧:SAP C4C社交媒体集成概述
- 深入理解python面向对象_转:Python3 面向对象,较为深入的两个理解
- 谈谈button标签和input标签的区别
- vmware传东西到linux后文件变小,在VMWARE的Linux虚拟机上删除大容量文件后硬盘空间大小还不变怎么办?虚拟机虚拟机的各种应用及问题...
- 【干货】2020十大消费新机遇.pdf(附下载链接)
- Oracle与MySQL使用区别
- oracle 体系结构及内存管理 14_锁
- 动态添加GRIDVIEW内容 和数据绑定
- 记录一次重装win10系统的流程
- NLP数据标注工具调研
- Apache + svn 服务搭建
- 浏览器中performance的基本使用
- 【Ydui.js】------ ydui.js 中的 util 中的方法讲解如何调用使用 例如:获取地址栏信息,js 倒计时,cookie, 获取图片地址等
- 无法打开网上邻居计算机,win7网上邻居在哪 无法访问怎么办【图文】