前言:
我们在做WEB端UI自动化时,会遇到图片验证码校验的登录方式。
我在之前的文章也做过介绍:
https://www.cnblogs.com/TSmagic/p/16082799.html (Pillow + pytesseract + tesseract-ocr 破解简单的图形验证码)
https://www.cnblogs.com/TSmagic/p/16117861.html(Python + 超级鹰 识别图形验证码)
今天来介绍一个开源的OCR通用验证码离线本地识别库DdddOcr
一、简介
都在这:https://github.com/sml2h3/ddddocr
二、使用
1、测试页面
2、代码
# coding = utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from time import sleep import ddddocrdef Login():driver = webdriver.Chrome()driver.maximize_window()driver.get('${URL}') # 改为自己的URLsleep(1)# 输入账号密码driver.find_element(By.XPATH, "${username}").send_keys("${lit}") # 改为自己平台的定位元素和账号driver.find_element(By.XPATH, "${password}").send_keys("${lit888}") # 改为自己平台的定位元素和密码# 保存验证码图片driver.find_element(By.ID, "${img}").screenshot("test.png") # 改为自己平台的定位元素# 创建DdddOcr对象ocr = ddddocr.DdddOcr(show_ad=False) # beta=True切换到第二套模型# 读取图片with open('test.png', 'rb') as f:img = f.read()# 识别图片内验证码并返回字符串result = ocr.classification(img)print("识别结果:", result)# 输入识别的验证码结果driver.find_element(By.XPATH, "${code}").send_keys(result) # 改为自己平台的定位元素# 登录sleep(10)driver.find_element(By.CSS_SELECTOR, "${login}").click() # 改为自己平台的定位元素 Login()