java robot识别验证码,【自动化测试】使用Java+selenium填写验证码成功登录

  • Post author:
  • Post category:java


这是我第一次发博客,若有问题,请多多指教!

本次是为了帮忙解决,如果在平时自动化遇到有验证码填写的情况,我们如何成功登录情况。

思路:

首先我们先将验证码复制并保存成一个图片,然后使用tesseract-ocr这个光学软件识别成txt文件,接着我们只要读取txt文件的内容即可

2. 使用工具:

Eclipse、selenium、火狐、log4j、AUTOIT_3.3.14.1、tesseract-ocr

3. 安装软件

I. eclipse安装,直接网上下载并安装即可

II.Selenium和log4j,这两个是个jar包,只需要下载下来即可,然后我们建立项目的时候,可以建立一个文件lib保存起来

如图:

4d8d383bce9f681fb36dff7b8cee6696.png

如何使用这两个jar包?项目à右键—>构建路径à配置购置路径à点击添加jarj即可

66cf94889f71c0cc9c84c78a631ea1c6.png

III.火狐安装,建议默认安装吧。免得到时候在代码还需添加一句寻找火狐的路径

IV.AUTOIT_3.3.14.1安装,为什么安装这个呢?是为了解决window自带的操作,例如保存,因为我需要用到另存为图片,所以这个可以帮我解决。安装嘛,我是直接一直next

V. tesseract-oc,同理安装,不过需要重启一下电脑,它才会把路径写入path

解决验证码的步骤

public static void baoCunTuPian(WebDriver driver) throws AWTException, InterruptedException{

//右键点击浏览器的属性

Actions action = new Actions(driver);

action.contextClick(driver.findElement(By.id(“ImageButton1”))).build().perform();

System.out.print(“右键打开浏览器属性成功\n”);

Robot robot = new Robot();

Thread.sleep(1000);

robot.keyPress(KeyEvent.VK_DOWN);

System.out.print(“移动到查看图像”);

Thread.sleep(1000);

robot.keyPress(KeyEvent.VK_DOWN);

System.out.print(“移动到复制图像” +

“\n”);

Thread.sleep(1000);